概览
ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的。
内容
1.构造函数
Set 本身是一个构造函数,可以接受一个数组(或者具有 iterable 接口的其他数据结构)作为参数,用来初始化。
var arr = [1,2,2,3,3,3];
var setObj = new Set(arr); // [1,2,3]
2.属性
size:set实例的成员总数。
3.操作方法(操作数据)
1、add;
2、clear;
3、delete;
4、has。
var arr = [1,2,2,3,3,3];
var setObj = new Set(arr); // {1,2,3}
setObj.add(4);
console.log(setObj); // {1,2,3,4}
console.log(setObj.has(4)); // true
// 语法:delete(vlaue),不是index
setObj.delete(4);
console.log(setObj); // {1,2,3}
setObj.clear();
console.log(setObj); // {}
3.遍历方法
forEach:类似于数组,没有返回值。
setObj.forEach(function (curItem, index) {
console.log('Index is ' + index + ', square is ' + curItem * curItem);
})
利用扩展运算符,将 set 转为数组,间接使用数组的ES5 方法:
var arr = [1,2,2,3,3,3];
var setObj = new Set(arr);
var mapSet = new Set([...setObj].map(function(item, index, array) {
return item * item;
}))
// {1,4,9}
var filterSet = new Set([...setObj].filter(function(item, index, array) {
return item % 2 === 1;
}))
// {1,3}
网友评论