今天带来js中set对象详解,Set对象是值的集合,你可以按照插入的顺序迭代它的元素。 Set中的元素只会出现一次,即 Set 中的元素是唯一的。
根据set特性,我们就可以解决传统array对象繁琐的数据处理,比如获取一个数组中的唯一值等
小试牛刀:
玩法1根据数组创建set
var arr = [1,2,'3',null,'undefined'] var _set1 = new Set(arr) console.log(_set1) // Set(5) {1, 2, "3", null, "undefined"}
玩法2根据set对象原型方法创建
// 用到方法有 .add() 给set实列添加值,注意根据set元素唯一特性,重复key会被替换
// 但是给set添加对象key会以数组下标形式自增,相同对象则不影响可以重复添加, 如下所示,正如上所说set元素是不允许重复的,但是值却可以。
其他set对象原型方法效果预览:
包含了 keys,values,has,delete,clear等常用方法
set对象api大全
Set() 创建一个新的Set对象。 静态属性 get Set[@@species] 构造函数用来创建派生对象. 实例属性 Set.prototype.size 返回 Set 对象中的值的个数 实例方法 Set.prototype.add(value) 在Set对象尾部添加一个元素。返回该Set对象。 Set.prototype.clear() 移除Set对象内的所有元素。 Set.prototype.delete(value) 移除Set中与这个值相等的元素,返回Set.prototype.has(value)在这个操作前会返回的值(即如果该元素存在,返回true,否则返回false)。Set.prototype.has(value)在此后会返回false。 Set.prototype.entries() 返回一个新的迭代器对象,该对象包含Set对象中的按插入顺序排列的所有元素的值的[value, value]数组。为了使这个方法和Map对象保持相似, 每个值的键和值相等。 Set.prototype.forEach(callbackFn[, thisArg]) 按照插入顺序,为Set对象中的每一个值调用一次callBackFn。如果提供了thisArg参数,回调中的this会是这个参数。 Set.prototype.has(value) 返回一个布尔值,表示该值在Set中存在与否。 Set.prototype.keys() 与values()方法相同,返回一个新的迭代器对象,该对象包含Set对象中的按插入顺序排列的所有元素的值。 Set.prototype.values() 返回一个新的迭代器对象,该对象包含Set对象中的按插入顺序排列的所有元素的值。 Set.prototype[@@iterator]() 返回一个新的迭代器对象,该对象包含Set对象中的按插入顺序排列的所有元素的值。