Set数据结构(es6新增)

es6提供了新的数据结构,它类似数组,但是成员都是唯一的,没有重复的值(可以用来解决数组去重)!

1、Set本身是一个构造函数,用来生产Set数据结构(可以通过add方法添加数据,size方法判断长度)

var s = new Set();

[2, 3, 5, 4, 5, 2, 2].map(x => s.add(x));

for (let i of s) {//set结构数据遍历方法
  console.log(i);
}
// 2 3 5 4    //去掉了重复的值

2、Set构造函数可以接收一个数据或者类数组的对象作为参数,用来初始化

let a=new Set([1,2,3,4,5]);//数组入参

function b(a,b,c){
    let x=new Set(arguments);//类数组对象入餐
}

3、注意在Set结构内部,默认两个NaN是相等

4、Set结构数据操作方法分为两大类,操作方法和遍历方法

操作方法

  • add(value):添加某个值,返回Set结构本身。
  • delete(value):删除某个值,返回一个布尔值,表示删除是否成功。
  • has(value):返回一个布尔值,表示该值是否为Set的成员。
  • clear():清除所有成员,没有返回值。
  • Array.from()方法可以把Set结构数据转数组
  • [...a]方法也可以将Set结构数据转数组

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

  • keys():返回一个键名的遍历器
  • values():返回一个键值的遍历器
  • entries():返回一个键值对的遍历器
  • forEach():使用回调函数遍历每个成员
let set = new Set(['red', 'green', 'blue']);

for (let item of set.keys()) {
  console.log(item);
}
// red
// green
// blue

for (let item of set.values()) {
  console.log(item);
}
// red
// green
// blue

for (let item of set.entries()) {
  console.log(item);
}
// ["red", "red"]
// ["green", "green"]
// ["blue", "blue"]

猜你喜欢

转载自blog.csdn.net/baidu_41921865/article/details/88578578
今日推荐