当前位置:首页 » 《资源分享》 » 正文

Set(集合)_纸飞机博客

20 人参与  2021年09月29日 14:03  分类 : 《资源分享》  评论

点击全文阅读


set是ES6提供的数据结构,是值的集合, 它类似数组,但成员的值都是唯一的。

Set数据结构的创建

const s1 = new Set();
//接收参数可迭代对象(数组)初始化set
const s2 = new Set([1,2,2,3,4]);
console.log(s1) //Set{}
console.log(s2) //Set{1,2,3,4}

Set属性和原型方法

const s1 = new Set([1,2,3,4]);
//返回Set的值的个数
console.log(s1.size) //4

//在set尾部添加一个元素。返回该set。
s1.add('c')
console.log(s1); //Set{1,2, 3, 4, 'c'}

//删除指定数据 ,返回一个布尔值
var isdel = s1.delete(1)
console.log(isdel); //true

//判断该值是否为set的成员,返回布尔值
const ishas = s1.has(1);
console.log(ishas); //false

//清除所有的数据 ,没有返回值
sl.clear();
console.log(sl); //Set{}

//返回键名的迭代器iterator
console.log(sl.keys());
//Setiterator {1,2,3,4}

//返回键值的迭代器iterator
console.log(s1.values());
//Setiterator {1,2,3,4}

//返回名值对的迭代器iterator ;
console.log(s1.entries()); ;
//Setiterator {1 => 1,2 =>2,3 -> 3, 4 -> 4}
//由于Set只有值,所以键名和键值是一样的。

迭代Set

const s = new Set([1,2,3,4]);
//Set是可迭代对象(iterable),可以使用for of来遍历。Set内置[Symbol.iterator]是Set的
values()方法,返回Set值的迭代器。
for(let value of s) {
    console.log(value); //1234
}
// forEach。遍历,Set本身没有key, forEach方法中的key被设置成了元素本身。
s.forEach((value, key) => {
    console.log(value, key); //11 22 33 44
});
// for of遍历s.entries()
for (let v of s.entries()){
    console.log(v)
}
// [1,1]
// [2,2]
// [3,3]
// [4,4]

Set和Array的转换

//数组转换成Set
const arr =[1,2, 2,'3','3']
let set = new Set(arr);
console.log(set) // Set(3) {1,2,"3"}

//Set转换成数组
let set = new Set();
set.add(1);
set.add('2');
console.log(Array.from(set)) // [1, "2"]

数组去重(转化成Set)

const arr = [1,1,'xiao','xiao',null,null]
let set = new Set(arr);
console.log([...set]) //[1, 'xiao', null]
//或者
console.log(Array.from(set)) //[1, 'xiao', null]


点击全文阅读


本文链接:http://zhangshiyu.com/post/29010.html

返回  数组  迭代  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1