共计 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
初次拟写~不断更新添加笔记
正文完
发表至: javascript
2019-05-05