ES6 set

Set本身是一个构造函数,用来生成Set数据结构。
const s = new Set()

set类似于数组,但是成员的值都是唯一的,没有重复的值。

set可以接收一个数组用来初始化
let arr = new Set([1, 2, 3, 4, 4])
初始化的set是一个对象,可以借助Array.from()方法转换为数组
let obj = new Set([1, 2, 3, 4, 4])
console.log(obj instanceof Object) // true
let arr = Array.from(obj)
console.log(arr instanceof Array) // true
set相关方法
add(value):添加某个值,返回Set结构本身。
delete(value):删除某个值,返回一个布尔值,表示删除是否成功。
has( value):返回一个布尔值,表示参数是否为Set成员。
clear( ):清除所有成员,没有返回值。
set成员是唯一的,利用这个特性,可以去除数组的重复元素。
function dedupe(array){
   return Array.from(new Set(array));
}
console.log(dedupe([1,2,3,3])); // [1,2,3]
另一种set去重操作
let arr=[3,5,2,2,5,5];
let unique=[...new Set(arr)];
console.log(unique);

注意:set不能用于数组中的对象去重,因为对象是不会完全相等的

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

注意:keys()会返回索引,values()会返回所以对应的值,对象也会被当做一个values()

延伸ES6 数组
Math.max(1,2,3,4) // 输出最大值
Math.max(...[1,2,3,4]) // 输出数组最大值
Math.max.apply(null, [1,[1,2,3],2,3,4]); // 输出数组最大值

猜你喜欢

转载自blog.csdn.net/nick_yangxiaotong/article/details/80919781