es6之Set(2)

脑阔痛Ծ‸Ծ,我终于又开始学es6啦~

es6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值

什么是set?大致长这样

var s = new Set(["a","b","c"]);
console.log(s);

Set 实例的方法分为两大类:操作方法(用于操作数据)和遍历方法(用于遍历成员)。下面先介绍四个操作方法。

1.add(value):添加某个值,返回Set结构本身

var s = new Set(["a","b","c"]);
s.add(1);
console.log(s);

//结果:Set(5) {"a", "b", "c", 1}

 

一、set方法中只会保存唯一

var s = new Set(["a","b","c"]);
s.add(1).add(2).add(1);
console.log(s);

//结果:Set(5) {"a", "b", "c", 1, 2}

二、NaN也不会例外,即使NaN===NaN是false

var s = new Set(["a","b","c"]);
s.add(NaN).add(NaN);
console.log(s);

//结果:Set(4) {"a", "b", "c", NaN}

 

2.delete(value):删除某个值,返回一个布尔值,表示删除是否成功

var s = new Set(["a","b","c"]);
s.delete('b')
console.log(s);

//结果:Set(2) {"a", "c"}

有返回值

var s = new Set(["a","b","c"]);
var res = s.delete('b')
console.log(s,res);

//结果:Set(2) {"a", "c"} true

 

3.has(value):返回一个布尔值,表示该值是否为Set的成员

 var s = new Set(["a","b","c"]);
 console.log(s.has('a'));

//结果:true

 

4.clear():清除所有成员,没有返回值

var s = new Set(["a","b","c"]);
s.clear();
console.log(s);

//结果:Set(0) {}

 

Set 结构的实例有四个遍历方法,可以用于遍历成员

1.forEach():使用回调函数遍历每个成员

var s = new Set(["a","b","c"]);
s.forEach(function (item,index,set) {
   console.log(item,index,set);
})

//结果: a a Set(3) {"a", "b", "c"}
        b b Set(3) {"a", "b", "c"}
        c c Set(3) {"a", "b", "c"}

//循环的那一项、当前项索引、完整的set数据结构
//在set数据结构中项和索引一样

 

2.keys():返回键名的遍历器

var s = new Set(["a","b","c"]);
var keys = s.keys();
console.log(keys);

//结果:SetIterator {"a", "b", "c"}

此处遍历打印的值,false表示遍历还没结束。按照插入顺序一个一个打出来

var s = new Set(["a","b","c"]);
    var keys = s.keys();
    console.log(keys.next());
    console.log(keys.next());
    console.log(keys.next());
    console.log(keys.next());

//结果: {value: "a", done: false}
        {value: "b", done: false}
        {value: "c", done: false}
        {value: undefined, done: true}

 

3.values():返回键值的遍历器

var s = new Set(["a","b","c"]);
var values = s.values();
console.log(values.next());
console.log(values.next());
console.log(values.next());
console.log(values.next());

//结果同上

 

4.entries():返回键值对的遍历器

var s = new Set(["a","b","c"]);
var entries = s.entries();
console.log(entries.next());
console.log(entries.next());
console.log(entries.next());
console.log(entries.next());

结果。项、索引、是否遍历完了

 

小例子,数组去重

var arr = [1,2,2,4,5,8,5,"1",NaN,NaN];
var s = new Set(arr);
console.log(s);

结果:    

最后:凌晨十二点半,困。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值