JS Set集合
i东东 人气:1Set集合概述
- Set集合和Arry数组很相似,但是Set集合存储的是key也就是说Set集合中不可以存在两个值和数据类型都相等的key
- Set集合不可以用下标取值
- Set集合没有length属性而是size
- Set集合可以通过Array.from转为真正的数组
如何创建并使用 Set
创建一个 Set 并添加现有变量:
// 创建变量 const a = "a"; const b = "b"; const c = "c"; // 创建 Set const letters = new Set(); letters.add(a); letters.add(b); letters.add(c);
Add()
往集合添加元素,会进行去重,重复的元素添加只会显示一个
var set = new Set() set.add(1) console.log(set); // {1} var set = new Set().add(1).add([2,3,4]) console.log(set); // {1, [2,3,4]} var set = new Set([1,2,3,4,5,6]); console.log(set.add(123)); // {1, 2, 3, 4, 5,6,123} 说明添加成功了 console.log(set.add(1)); // {1, 2, 3, 4, 5,6,123} 说明重复的没有添加成功
Clear()
清空Set对象
var set = new Set([1,2,3,4,5,6]); set.clear() console.log(set); // {size: 0} 清空成功
Delete()
删除Set对象中的值
var set = new Set([1,2,3,4,5,6]); console.log(set.delete(1)); // true 说明删除成功 console.log(set.delete(1)); // false说明删除失败,因为集合中已经不存在 1 console.log(set); // [2,3,4,5,6] 1被删除掉了
Entries()
Entries() 方法返回一个数组的迭代对象,该对象包含数组的键值对 (key/value)。迭代对象中数组的索引值作为 key, 数组元素作为 value。
var set = new Set([1,2,3,4,5]); console.log(set); // {1, 2, 3, 4, 5} console.log(set.entries()); // {1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5}
Has()
判断Set对象中某个值是否存在,存在返回true,不存在返回false
var set = new Set([1,2,3,4,5]); console.log(set.has(1)); // ture 说明Set对象中存在1 console.log(set.has(6)); // false 说明Set对象中不存在6
ForEach()
为每个元素调用回调 它具有三个参数:
- .value:可选,Set对象中元素的值。
- .key:可选由于Set对象没有键,所以key的值和value的值相同。
- .setObj:可选,Set对象本身。
var set = new Set([1,2,3,4,5]); set.forEach((value,key,setObj)=>{ console.log(value,key,setObj); }) // 1 1 {1, 2, 3, 4, 5} // 2 2 {1, 2, 3, 4, 5} ....
Keys() 与 values()
返回Set对象的key值数组,返回Set对象的value值数组
var set = new Set([1,2,3,4,5]); console.log(set.keys()); // {1, 2, 3, 4, 5} console.log(set.values()); // {1, 2, 3, 4, 5}
Size
返回Set对象中元素计数
var set = new Set([1,2,3,4,5]); console.log(set.size); // 5
Set 对象的方法和属性集合
名称 | 说明 |
---|---|
new Set() | 创建新的 Set 对象。 |
add() | 向 Set 添加新元素。 |
clear() | 从 Set 中删除所有元素。 |
delete() | 删除由其值指定的元素。 |
entries() | 返回 Set 对象中值的数组。 |
has() | 如果值存在则返回 true。 |
forEach() | 为每个元素调用回调。 |
keys() | 返回 Set 对象中值的数组。 |
values() | 与 keys() 相同。 |
size | 返回元素计数。 |
加载全部内容