● 这里我们简单的举一个例子
const ordersSet = new Set(
[
'Pasta',
'Pizza',
'Pizza',
'Risotto',
'Pasta',
'Pizza',
]
);
console.log(ordersSet);
注:这是集合的写法,我们可以看到,集合像数组的形式差不多,并且集合可以去除重复性数据;
● 我们可以看到集合中到底有多少种菜
const ordersSet = new Set(
[
'Pasta',
'Pizza',
'Pizza',
'Risotto',
'Pasta',
'Pizza',
]
);
console.log(ordersSet);
console.log(ordersSet.size);
● 检查某个元素是否在集合内
console.log(ordersSet.has('Pizza'));
console.log(ordersSet.has('IT知识一享'));
● 向集合内添加新的元素
ordersSet.add('Garlic Bread');
console.log(ordersSet);
注:如果重复同意名称元素,集合会自动的忽略,因为集合里面的元素是唯一性的
● 删除集合中的元素
ordersSet.delete('Risotto');
console.log(ordersSet);
注:集中无法像数组一样通过下标去检索数据,所以你的目标是实际按顺序存储值,然后检索它,那么最好的用例就是只使用一个数组,没有必要使用集合;
● 删除集合中所有元素
ordersSet.clear();
console.log(ordersSet);
● 集合是可迭代的,所以我们可以使用for—of去列举它
for (const order of ordersSet) {
console.log(order);
}
● 例如我们现在饭馆里面有厨师,服务员几个,和经理,我们创建一个数组
const staff = ['Waiter','Chef','Waiter','Manager','Chef','Waiter'];
● 如果现在我们只要知道有哪些角色,通过数组来创建一个集合
const staffUnique = new Set(staff);
console.log(staffUnique);
● 但是如果我们像为这个集合新创建一个数组,我们可以使用扩展运算符
const staffUnique = [...new Set(staff)];
console.log(staffUnique);
● 当然,我们也可以直接传入数组来获取他的size
console.log(new Set(['Waiter','Chef','Waiter','Manager','Chef','Waiter']).size);
● 也可以通过集合去计算字符串有多少个字母
console.log(new Set('abcdefghijklmnopqrst').size);