Javascript ES6中對(duì)象類型Sets的介紹與使用詳解
介紹
ECMAScript 6(以下簡(jiǎn)稱ES6)是JavaScript語言的下一代標(biāo)準(zhǔn)。因?yàn)楫?dāng)前版本的ES6是在2015年發(fā)布的,所以又稱ECMAScript 2015。
Sets 是ES6(ES2015)中一個(gè)新的對(duì)象類型,用來創(chuàng)建一系列唯一值的集合。集合中的值可以是簡(jiǎn)單的原始類型如字符串(strings)或整數(shù)(integers),也可以是更復(fù)雜的對(duì)象類型如對(duì)象字面量或者數(shù)組。
基本方法
下面是基本的set及其方法(add, size, has, forEach, delete, clear)的簡(jiǎn)單示例:
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
初始化
下面是另一個(gè)將數(shù)組作為初始值傳進(jìn)set的示例。需要主要的是初始化的數(shù)組是如何被解構(gòu)的,但是隨后添加的數(shù)組將以數(shù)組的形式存在:
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: "🐢" }
字符串也是一個(gè)有效的迭代,所以也可以被傳入來初始化一個(gè)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遍歷
除了在一個(gè)set上可以使用forEach外,for...of循環(huán)也可以被用來遍歷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的別名,所以兩個(gè)方法其實(shí)是完成一樣的事情。使用兩者中的任何一個(gè)方法都會(huì)返回一個(gè)新的可迭代的對(duì)象,該對(duì)象的值與添加到集合中的順序相同。
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
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
注:
原文: Introduction to Sets in JavaScript
作者: alligatorio
譯者:smallbone
譯文地址:https://alligator.io//js/sets-introduction/
- js定義類的方法示例【ES5與ES6】
- ES6 javascript中class類的get與set用法實(shí)例分析
- ES6新特性之類(Class)和繼承(Extends)相關(guān)概念與用法分析
- ES6中javascript實(shí)現(xiàn)函數(shù)綁定及類的事件綁定功能詳解
- ES6中class類用法實(shí)例淺析
- 老生常談ES6中的類
- ES6中Class類的靜態(tài)方法實(shí)例小結(jié)
- Javascript ES6中數(shù)據(jù)類型Symbol的使用詳解
- ES6中Symbol類型用法實(shí)例詳解
- ES6新特性之Symbol類型用法分析
- ES6 更易于繼承的類語法的使用
- ES6中定義類和對(duì)象的方法示例
相關(guān)文章
JS實(shí)現(xiàn)點(diǎn)擊圖片在當(dāng)前頁面放大并可關(guān)閉的漂亮效果
點(diǎn)擊圖片在當(dāng)前頁面放大的漂亮效果實(shí)現(xiàn)方法有很多,在本文將為大家介紹下使用Lightbox JS是如何實(shí)現(xiàn)的,感興趣的朋友不要錯(cuò)過2013-10-10
javascript getElementById 使用方法及用法
顧明思義,get-Element-By-Id,就是通過ID來設(shè)置/返回HTML標(biāo)簽的屬性及調(diào)用其事件與方法。用這個(gè)方法基本上可以控制頁面所有標(biāo)簽,條件很簡(jiǎn)單就是給每個(gè)標(biāo)簽分配一個(gè)ID號(hào)2008-11-11
js+css 實(shí)現(xiàn)遮罩居中彈出層(隨瀏覽器窗口滾動(dòng)條滾動(dòng))
本文為大家詳細(xì)介紹下使用js實(shí)現(xiàn)遮罩彈出層居中,且隨瀏覽器窗口滾動(dòng)條滾動(dòng),示例代碼如下,感興趣的朋友可以參考下2013-12-12
JavaScript中數(shù)組去重的辦法總結(jié)
你是否在面試的過程中被考到過給你一個(gè)數(shù)組讓你去掉重復(fù)項(xiàng)呢,下面小編就來總結(jié)一下對(duì)于數(shù)組去重這道簡(jiǎn)單的面試題時(shí),我們可以回答的方法有什么吧2023-06-06
如何利用JavaScript讀取excel文件并繪制echarts圖形
這篇文章主要介紹了如何利用JavaScript讀取excel文件并繪制echarts圖形,文章通過excel財(cái)務(wù)報(bào)表,并且需要根據(jù)這張excel表繪制成各種echarts圖形,需要了解更多詳情的小伙伴可以參考一下文章內(nèi)內(nèi)容2022-05-05
微信小程序swiper組件用法實(shí)例分析【附源碼下載】
這篇文章主要介紹了微信小程序swiper組件用法,結(jié)合實(shí)例形式分析了微信小程序中swiper組件的功能、使用方法,并附帶完整源碼供讀者下載參考,需要的朋友可以參考下2017-12-12

