介绍
ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准。因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015。
Sets 是ES6(ES2015)中一个新的对象类型,用来创建一系列唯一值的集合。集合中的值可以是简单的原始类型如字符串(strings)或整数(integers),也可以是更复杂的对象类型如对象字面量或者数组。
基本方法
下面是基本的set及其方法(add,size,has,forEach,delete,clear)的简单示例:
animals.add('🐼');
animals.add('🐢');
animals.add('🐿');
console.log(animals.size); // 4
animals.add('🐼');
console.log(animals.size); // 4
console.log(animals.has('🐷')); // true
animals.delete('🐷');
console.log(animals.has('🐷')); // false
animals.forEach(animal => {
console.log(Hey ${animal}!
);
});
// Hey 🐼!
// Hey 🐢!
// Hey 🐿!
animals.clear();
console.log(animals.size); // 0
初始化
下面是另一个将数组作为初始值传进set的示例。需要主要的是初始化的数组是如何被解构的,但是随后添加的数组将以数组的形式存在:
myAnimals.add({ name: 'Rud',type: '🐢' });
console.log(myAnimals.size); // 4
myAnimals.forEach(animal => {
console.log(animal);
});
// 🐷
// 🐢
// ["🐨","🐑"]
// Object { name: "Rud",type: "🐢" }
字符串也是一个有效的迭代,所以也可以被传入来初始化一个set:
console.log(sentence.size); // 18
For...of遍历
除了在一个set上可以使用forEach外,for...of循环也可以被用来遍历sets:
console.log(
Howdy ${ animal }
);}
// Howdy 🐺
// Howdy 🐴
// Howdy 🐕
// Howdy 🐇
Keys 和 Values
Sets也有keys和values方法,由于keys是values的别名,所以两个方法其实是完成一样的事情。使用两者中的任何一个方法都会返回一个新的可迭代的对象,该对象的值与添加到集合中的顺序相同。
console.log(items.next());
console.log(items.next());
console.log(items.next().done);
// Object {
// done: false,// value: "🍕"
// }
// Object {
// done: false,// value: "🍾"
// }
// Object {
// done: false,// value: "🎊"
// }
// true
总结
以上就是这篇文章的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对编程之家的支持。
注:
原文: Introduction to Sets in JavaScript
作者: alligatorio
译者:smallbone
译文地址:nofollow" target="_blank" href="https://alligator.io//js/sets-introduction/">https://alligator.io//js/sets-introduction/