全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Javascript ES6中对象类型Sets的介绍与使用详解

介绍

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

译文地址:https://alligator.io//js/sets-introduction/


# sets  # es6  # 对象类型  # js定义类的方法示例【ES5与ES6】  # ES6 javascript中class类的get与set用法实例分析  # ES6新特性之类(Class)和继承(Extends)相关概念与用法分析  # ES6中javascript实现函数绑定及类的事件绑定功能详解  # ES6中class类用法实例浅析  # 老生常谈ES6中的类  # ES6中Class类的静态方法实例小结  # Javascript ES6中数据类型Symbol的使用详解  # ES6中Symbol类型用法实例详解  # ES6新特性之Symbol类型用法分析  # ES6 更易于继承的类语法的使用  # ES6中定义类和对象的方法示例  # 遍历  # 的是  # 迭代  # 是在  # 也有  # 可以使用  # 任何一个  # 将以  # 这篇文章  # 谢谢大家  # 有疑问  # Set  # animals  # brush  # class  # js  # true  # log  # animal  # false 


相关文章: 建站之星安装路径如何正确选择及配置?  建站之星安全性能如何?防护体系能否抵御黑客入侵?  大连 网站制作,大连天途有线官网?  设计网站制作公司有哪些,制作网页教程?  网站制作公司排行榜,四大门户网站排名?  建站之星如何快速解决建站难题?  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  宝塔建站无法访问?如何排查配置与端口问题?  c# 在高并发下使用反射发射(Reflection.Emit)的性能  如何确保FTP站点访问权限与数据传输安全?  如何通过.red域名打造高辨识度品牌网站?  深圳网站制作培训,深圳哪些招聘网站比较好?  建站之星安装后界面空白如何解决?  建站之星安装需要哪些步骤及注意事项?  如何在阿里云虚拟服务器快速搭建网站?  重庆网站制作公司哪家好,重庆中考招生办官方网站?  小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?  如何快速搭建支持数据库操作的智能建站平台?  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  高防服务器租用如何选择配置与防御等级?  建站之星后台密码遗忘或太弱?如何重置与强化?  如何在宝塔面板中修改默认建站目录?  深圳企业网站制作设计,在深圳如何网上全流程注册公司?  制作旅游网站html,怎样注册旅游网站?  建站之星如何开启自定义404页面避免用户流失?  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  图册素材网站设计制作软件,图册的导出方式有几种?  c# Task.ConfigureAwait(true) 在什么场景下是必须的  如何零基础开发自助建站系统?完整教程解析  可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?  安云自助建站系统如何快速提升SEO排名?  网站制作企业,网站的banner和导航栏是指什么?  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  如何通过虚拟主机空间快速建站?  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  简易网站制作视频教程,使用记事本编写一个简单的网页html文件?  如何破解联通资金短缺导致的基站建设难题?  焦点电影公司作品,电影焦点结局是什么?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  如何快速搭建自助建站会员专属系统?  如何通过二级域名建站提升品牌影响力?  建站之星后台管理:高效配置与模板优化提升用户体验  如何在建站宝盒中设置产品搜索功能?  如何优化Golang Web性能_Golang HTTP服务器性能提升方法  电脑免费海报制作网站推荐,招聘海报哪个网站多?  建站之星上传入口如何快速找到?  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  我的世界制作壁纸网站下载,手机怎么换我的世界壁纸? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。