介绍
ecmascript 6(以下简称es6)是javascript语言的下一代标准。因为当前版本的es6是在2015年发布的,所以又称ecmascript 2015。
sets 是es6(es2015)中一个新的对象类型,用来创建一系列唯一值的集合。集合中的值可以是简单的原始类型如字符串(strings)或整数(integers),也可以是更复杂的对象类型如对象字面量或者数组。
基本方法
下面是基本的set及其方法(add, size, has, foreach, delete, clear)的简单示例:
let animals = new set(); animals.add('🐷'); 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的示例。需要主要的是初始化的数组是如何被解构的,但是随后添加的数组将以数组的形式存在:
let myanimals = new set(['🐷', '🐢', '🐷', '🐷']); myanimals.add(['🐨', '🐑']); myanimals.add({ name: 'rud', type: '🐢' }); console.log(myanimals.size); // 4 myanimals.foreach(animal => { console.log(animal); }); // 🐷 // 🐢 // ["🐨", "🐑"] // object { name: "rud", type: "🐢" }
字符串也是一个有效的迭代,所以也可以被传入来初始化一个set:
console.log('only unique characters will be in this set.'.length); // 43 let sentence = new set('only unique characters will be in this set.'); console.log(sentence.size); // 18
for...of遍历
除了在一个set上可以使用foreach外,for...of循环也可以被用来遍历sets:
let moreanimals = new set(['🐺', '🐴', '🐕', '🐇']); for (let animal of moreanimals) { console.log(`howdy ${ animal }`); } // howdy 🐺 // howdy 🐴 // howdy 🐕 // howdy 🐇
keys 和 values
sets也有keys和values方法,由于keys是values的别名,所以两个方法其实是完成一样的事情。使用两者中的任何一个方法都会返回一个新的可迭代的对象,该对象的值与添加到集合中的顺序相同。
let partyitems = new set(['🍕', '🍾', '🎊']); let items = partyitems.values(); console.log(items.next()); 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
译文地址:
如对本文有疑问, 点击进行留言回复!!
使用纯前端JavaScript实现Excel导入导出方法过程详解
微信小程序完美解决scroll-view高度自适应问题的方法
网友评论