ES6学习笔记之Set

35次阅读

共计 1130 个字符,预计需要花费 3 分钟才能阅读完成。

Set

基本属性它和数组类似,但是数组中的成员值是唯一的没有重复值,Set本身是一个构造函数用来生产一个数据结构

let arr = [1,2,3,3,4,5,5,6,5];
let content = new Set(arr);
console.log(content) //1,2,3,4,5,6

set 实例和方法

Set 结构的实例有以下属性

构造函数,默认就是 set 函数:Set.prototype.constructor

返回总数,Set.prototype.size可以简写为Set.size

操作方法和遍历方法

add(value) delete(value) has(value) clear()
添加数值返回 set 本身 删除某个值返回布尔值表示是否成功删除 返回布尔值查看该值是否存在与 set 清除所有 set 成员不返回值
keys() values() entries() forEach()
返回键名的遍历器 返回键值的遍历器 返回键值对的遍历器 使用回调遍历每一项
map() filter()
遍历返回新数组 过滤筛选数值

Array.from方法可以把 Set 结构转化为数组

var items = new Set([1, 2, 3, 4, 5]);
var array = Array.from(items);

去重方法

function ces(array) {return Array.from(new Set(array));
}
ces([......])
     //let arr = [1,2,2,3,4,3,6,5];
let unique = [...new Set(arr)];

遍历测试

// 通用测试属性    
let set = new Set(['red', 'green', 'blue']);

// 依次替换 set 属性测试
for (let item of set.keys()) {console.log(item);
}
// 由于 Set 结构没有键名,只有键值(或者说键名和键值是同一个值),所以 key 方法和 value 方法的行为完全一致。

Set 结构默认可遍历对象所以可以之间使用 for ... of 循环♻️遍历 set

for (let x of set) {console.log(x);
}

// 扩展运算符(...)内部使用 for...of 循环,所以也可以用于 Set 结构。let arr = [...set];

如果想遍历的同时改变数组有两种方法可以选择

//map()
let set = new Set([1, 2, 3]);
set = new Set([...set].map(val => val * 2));
// set 的值是 2, 4, 6

//Array.from()
let set = new Set([1, 2, 3]);
set = new Set(Array.from(set, val => val * 2));
// set 的值是 2, 4, 6

初次拟写~不断更新添加笔记

正文完
 0