es6知识点1-数据结构Set

一、定义

Set是一种新的数据结构(数据结构就是数据元素以某种特性关系组成的集合方式)
和数组很类似,但是是一种新的数据组合方式。有自己的构造函数。可以自己去new新建数据。
特点

  1. Set里面的元素是惟一的,不会重复;
  2. Set本身是一个构造函数,可以自己生成数据结构;

二、Set数据结构的方法

1.** add(val)** 增加一个值,可以重复增加,但是不会有效果;增加的时候不会有数据类型的转换,数字5和字符串“5”是不一样的;两个NaN是相等的;会改变结构本身

var setArr = new Set([1,2,3]);
console.log(setArr) // {1,2,3}


var setArr = new Set([1,2,3]);
console.log(setArr.add(4)); // {1,2,3,4}
console.log(setArr.add(4)); // {1,2,3,4}  //再次添加 但是不会有效果

var setArr = new Set([1,2,3]);
console.log(setArr.add(4)); // {1,2,3,4}
console.log(setArr.add('4')); // {1,2,3,4,'4'}  //增加的时候不会有数据类型的转换

var setArr = new Set([1,2,3]);
console.log(setArr.add(NaN)); // {1,2,3,4,NaN}
console.log(setArr.add(NaN)); // {1,2,3,4,NaN}  //NaN相等 再次添加 不会有效果

//但是两个对象总是不相等的,即使是空对象
  1. delete(val) 删除元素,返回布尔值,是否删除成功
var setArr = new Set([1,2,3]);
console.log(setArr) // {1,2,3}
setArr.delete(1); //true
console.log(setArr) // {2,3}
  1. has(val) 是否包含该元素,返回布尔值
var setArr = new Set([1,2,3]);
console.log(setArr) // {1,2,3}
setArr.has(1); //true
  1. clear(val) 清除所有元素,无返回值
var setArr = new Set([1,2,3]);
console.log(setArr) // {1,2,3}
setArr.clear(); // 无返回值
console.log(setArr); // {}

三、Set数据结构的遍历方法(遍历器)

**
Set通过for…of…,而Array通过for…in…
Set是集合,不能像数组用下标取值 set的键名值和键值相同的
**

  1. keys() 返回都是遍历器对象
var setArr = new Set([1,2,3]);
for(let i of setArr.keys()) {
	console.log(i)
}
// 1
// 2
// 3
  1. values() 返回都是遍历器对象
var setArr = new Set([1,2,3]);
for(let i of setArr.values()) {
	console.log(i)
}
// 1
// 2
// 3
  1. entries() 返回都是遍历器对象
var setArr = new Set([1,2,3]);
for(let i of setArr.entries()) {
	console.log(i)
}
// [1,1]
// [2,2]
// [3,3]
  1. forEach(function(value,key){}) 用回调返回键值对,可以返回被渲染后的键值对
var setArr = new Set([1,2,3]);
setArr.forEach(function (value, key) {
  console.log(value+'-'+key);
})
//1-1
//2-2
//3-3

四、数组去重

var array = [1,1,2,3,4,5,6,6,6];
function qc(arr){  //去重
	return [...new Set(arr)]  //扩展运算符 复制成数组
}
qc(array) //[1, 2, 3, 4, 5, 6]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值