基本属性它和数组相似,可是数组中的成员值是惟一的没有重复值,Set
自己是一个构造函数用来生产一个数据结构javascript
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结构的实例有如下属性java
构造函数,默认就是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)];
遍历测试prototype
//通用测试属性 let set = new Set(['red', 'green', 'blue']); //依次替换set属性测试 for (let item of set.keys()) { console.log(item); } //因为Set结构没有键名,只有键值(或者说键名和键值是同一个值),因此key方法和value方法的行为彻底一致。
Set结构默承认遍历对象因此能够之间使用for ... of
循环♻️遍历setcode
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
初次拟写~不断更新添加笔记ip