JavaScript Set
JavaScript的Set(集合)是一组唯一值的集合。
每个值只能在Set中出现一次。
Set可以容纳任何数据类型的值。
如何创建Set
将数组传递给new Set()
创建一个新的Set, 然后使用add()方法添加值
创建一个新的Set,然后使用add()方法添加变量
新的Set()方法
将数组传递给新的Set()构造函数:
//创建 Set const letters = new Set(["a","b","c"]);
创建一个Set 并添加字面量值:
const letters = new Set(); letters.add("a"); letters.add("b"); letters.add("c");
创建一个Set 并添加变量:
//创建变量 const a = "a"; const b = "b"; const c = "c"; //创建Set const letters = new Set(); //向Set 添加变量 letters.add(a); letters.add(b); letters.add(c); letters.add(c);
add 添加多个相等元素,只有第一个会被保存。
forEach() 方法为每个Set 元素调用函数:
//创建 Set const letters = new Set(["a","b","c"]); //列出所有条目 let text = ""; letters.forEach(function(value){ text += value; })
values() 方法返回包含Set 中所有值的Iterator 对象:
letters.values() //返回 [object Set Iterator]
现在可以使用Iterator 对象访问元素:
// 创建迭代器 const myIterator = letters.values(); // 列出所有值 let text = ""; for (const entry of myIterator) { text += entry; }
keys() 方法
Set 没有健。
keys() 返回与values()相同的结果。
这使得Set 与Map相兼容。
letters.keys() // 返回[object Set Iterator]
entries() 方法
entries()方法返回的是[value,value]值值对,而不是[key, value] 键值对。
//创建迭代器 const myIterator = letters.entries(); //列出所有条目 let text = ""; for (const entry of myIterator){ text += entry; }
对于Set typeof 返回object:
typeof letters; //返回 object
对于 Set instanceof Set; // 返回 true