ES6语法--Set数据结构

版权声明:本文为博主原创文章,未经博主允许不得转载。

Set概述

Set是ES6新提出的一种数据结构,类似于数组,不过它里面的成员唯一,不会发生类型转换,因此数据类型不同的两个相同的值可以独立存在。

let a=12;   //number类型
let b='12';  //string类型
这两个值是可以共同存在于Set数据结构内的
复制代码

Set创建

Set作为一个函数,可以接收参数,接收的参数内容可为数组或数组对象。

let x = new Set();  //方式一
let y = new Set([5,12,3,33,27,1]);   //方式二
let obj = new Set([{name:'Liming',age:18},{name:'Zhangsan',age:23},{name:'Zhaosi',age:25}]);  //方式三
复制代码

注意:newSet不同于数组类型,无法访问数组内的方法,想访问数组内方法,需要转化为数组。

Set与Array互转

  • Set转为Array
var s = new Set([1,2,3,4]);
console.log(s);
var arr = [...s];   //使用展开符...将set展开,运用[ ]表示数组;
console.log(arr);
复制代码
  • Array转为Set
var arr = [1,2,3,4,5,6,7,6,6,7];
console.log(arr);
var s = new Set(arr);  //Set是函数,接收参数可以传入数组,新的数据类型即为Set类型;
console.log(s);
复制代码

Set方法

  • add(n) 添加成员,重复值不添加
  • delete(n) 删除某个值,返回boolean
  • has(n) 判断n是否为Set成员,返回boolean
  • clear() 清楚所有成员,没有返回值
let s = new Set([15,22,5,12,3,2,11]);
s.add(8);
console.log(s);      //打印s:[15,22,5,12,3,2,11,8]
s.add(22);          
console.log(s);    // 添加相同数据时,无法添加,仍打印[15,22,5,12,3,2,11,8]
let x = s.has(5)
console.log(x);    //返回true
s.delete(2);
console.log(s);    //返回[15,22,5,12,3,11,8]
s.clear();
console.log(s);    //返回Set(0){}
复制代码

遍历Set数据操作

  • keys():返回键名的遍历器
  • values():返回键值的遍历器
  • entries():返回键值对的遍历器
  • forEach():使用回调函数遍历每个成员

遍历输出

let s = new Set([15,22,5,12,3,2,11]);
for(let item of s.keys()){
    console.log(item);
}
复制代码

转载于:https://juejin.im/post/5cf71648f265da1b6028f0dc

猜你喜欢

转载自blog.csdn.net/weixin_33675507/article/details/91441883