博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
es6基础0x011:Set
阅读量:6436 次
发布时间:2019-06-23

本文共 2027 字,大约阅读时间需要 6 分钟。

0x000 概述

Set是一个新的数据结构,和其他语言的特性差不多,当然,作为js中的Set,他还是有一些属于js的特点。

0x001 初始化

new Set([iterable]);

初始化一个Set有一个可选的参数,这个参数必须是一个可迭代的对象可迭代对象包括StringArrayArray-Like obejct(Arguments、NodeList)Typped ArraySetMap用户定义的可迭代对象

  • 字符串

    new Set('1234') // Set(4) {"1", "2", "3", "4"}
  • 数组

    new Set([1,2,3,4]) // Set(4) {1, 2, 3, 4}
  • arguments

    function sum(){  return new Set(arguments)}sum(1,2,3,4)  // Set(4) {1, 2, 3, 4}
  • Set

    new Set(new Set([1,2,3,4])) // Set(4) {1, 2, 3, 4}

0x002 添加值

初始化一个Set之后,可以继续往里面添加值

let set=new Set()set.add(1)set.add(1)set.add(1)console.log(set) // Set(1) {1}

借用这个特性可以搞很多事,比如过滤重复值

new Set([1,1,2,3]) // Set(3){1,2,3}

但是注意,两个相同的对象字面量是不同的对象,具有不同的引用,所以Set是无法将两个不同引用的对象标记为同一个的,即使他们看过去是一样的

let a={num:1}let b={num:1}console.log(a===b) //falsenew Set(a, b)// Set(2){
{num:1},{num:2}}let c=aconsole.log(c===a)//truenew Set(a,c)// Set(1){
{num:1}}

0x003 判断是否包含

let set=new Set([1,2,3])set.has(1) // trueset.has(4) //false

0x004 获取数量

let set=new Set([1,2,3])set.size //3

0x005 删除

let set=new Set([1,2,3])set.delete(1)// trueset.delete(1)// false

0x006 清空

let set=new Set([1,2,3])set.clear()console.log(set) // Set(0){}

0x007 遍历

let set=new Set([1,2,3])set.forEach((s)=>{console.log(s)})// 1// 2// 3

0x008 获取迭代器

let set=new Set([1,2,3])let entries=set.entries()console.log(entries.next().value) // [1,1]console.log(entries.next().value) // [2,2]console.log(entries.next().value) // [3,3]console.log(entries.next().value) // undefinedfor(let item of set){    console.log(item)}// 1// 2// 3

0x009 获取键迭代器

let set=new Set([1,2,3])let keys=set.keys()console.log(keys.next().value) // 1console.log(keys.next().value) // 2console.log(keys.next().value) // 3console.log(keys.next().value) // undefinedfor(let {key} of set){    console.log(key)}// 1// 2// 3

0x010 获取值迭代器

let set=new Set([1,2,3])let values=set.values()console.log(values.next().value) // 1console.log(values.next().value) // 2console.log(values.next().value) // 3console.log(values.next().value) // undefinedfor(let {value} of set){    console.log(value)}// 1// 2// 3

转载地址:http://jahga.baihongyu.com/

你可能感兴趣的文章
Ubuntu(Linux)使用Eclipse搭建C/C++编译环境
查看>>
skyline无插件web的数据加载解析
查看>>
硬盘存储双寡头之争 希捷重注中国市场或赢大丰收
查看>>
编译安装PHP
查看>>
css position:static 的使用
查看>>
nfs永久挂载与临时挂载
查看>>
linux查看网络链接状况命令之-netstat
查看>>
我的友情链接
查看>>
UIView的layoutSubviews和drawRect方法何时调用
查看>>
mysql主从同步
查看>>
制作最简化的Linux系统
查看>>
我的友情链接
查看>>
使用List的remove方法需要的注意的问题
查看>>
Ansible的介绍、安装、配置及常用模块介绍
查看>>
编码列表
查看>>
eigrp 配置
查看>>
谈一谈 redis 集群
查看>>
concurrent包
查看>>
在Linux下调试Python代码的各种方法
查看>>
centos7塔建MQ服务器
查看>>