JavaScript Set 集合方法
新的 Set() 方法
将数组传递给 new Set() 构造函数:
add() 方法
如果添加相同的元素,则只会保存第一个元素:
示例
letters.add("a");
letters.add("b");
letters.add("c");
letters.add("c");
letters.add("c");
letters.add("c");
letters.add("c");
letters.add("c");
亲自试一试 »注意
Set 对象的主要特性是它们只存储唯一值。
如果尝试向集合中添加一个已存在的元素,则 add() 方法不会生效,集合将保持不变。
size 属性
列出集合元素
您可以使用for...of循环列出集合中的所有元素(值):
示例
// 创建一个集合
const letters = new Set(["a","b","c"]);
// 列出所有元素
let text = "";
for (const x of letters) {
text += x;
}
亲自试一试 »has() 方法
has() 方法返回 true,表示指定值存在于集合中。
示例
// 创建一个集合
const letters = new Set(["a","b","c"]);
// 该集合是否包含 "d"?
answer = letters.has("d");亲自试一试 »forEach() 方法
forEach() 方法会为 Set 中的每个元素调用一个函数:
示例
// 创建一个集合
const letters = new Set(["a","b","c"]);
// 列出所有条目
let text = "";
letters.forEach (function(value) {
text += value;
})
亲自试一试 »values() 方法
values() 方法返回一个迭代器对象,其值存储在一个集合中:
示例 1
// 创建一个集合
const letters = new Set(["a","b","c"]);
// 获取所有值
const myIterator = letters.values();
// 列出所有值
let text = "";
for (const entry of myIterator) {
text += entry;
}
亲自试一试 »示例 2
// 创建一个集合
const letters = new Set(["a","b","c"]);
// 列出所有值
let text = "";
for (const entry of letters.values()) {
text += entry;
}
亲自试一试 »keys() 方法
keys() 方法返回一个迭代器对象,其值存储在一个 Set 中:
注意
集合没有键,因此 keys() 返回的值与 values() 返回的值相同。
这使得集合与映射兼容。
示例 1
// 创建一个集合
const letters = new Set(["a","b","c"]);
// 创建一个迭代器
const myIterator = letters.keys();
// 列出所有元素
let text = "";
for (const x of myIterator) {
text += x;
}亲自试一试 »示例 2
// 创建一个集合
const letters = new Set(["a","b","c"]);
// 列出所有元素
let text = "";
for (const x of letters.keys()) {
text += x;
}亲自试一试 »entries() 方法
entries() 方法返回一个迭代器,其中包含来自集合的 [value,value] 对。
注意
entries() 方法应该从对象返回一个 [key,value] 对。
Set 没有键,因此 entries() 方法返回 [value,value]。
这使得 Set 与 Map 兼容。
示例 1
// 创建一个集合
const letters = new Set(["a","b","c"]);
// 获取所有条目
const myIterator = letters.entries();
// 列出所有条目
let text = "";
for (const entry of myIterator) {
text += entry;
}
亲自试一试 »示例 2
// 创建一个集合
const letters = new Set(["a","b","c"]);
// 列出所有条目
let text = "";
for (const entry of letters.entries()) {
text += entry;
}
亲自试一试 »