|
Set
注:本身是一个构造函数,用来生成Set数据结构(类似数组,但并不是数组),成员的值都是唯 一的,不会重复。 const s = new Set();
[2, 3, 5, 4, 5, 2, 2].forEach(x => s.add(x));
for (let i of s) {
console.log(i);
}
// 2 3 5 4
Set的方法: 1、操作方法: add(val):添加,返回本身。 delete(val):删除,返回布尔 has(val):检查,返回布尔 clear():清除成员,无返回 Array.from(Set):将Set转换为数组结构(用于数组去重) [...set]:转换为数组结构 2、遍历操作 keys(): 返回键值 values():返回键值 entries():返回【键名,键值】 fromEach(): let set = new Set(['red', 'green', 'blue']);
for (let x of set) {
console.log(x);
}
// red
// green
// blueset = new Set([1, 4, 9]); set.forEach((value, key) => console.log(key + ' : ' + value)) // 1 : 1 // 4 : 4 // 9 : 9利用Set实现并集,交集,差集 let a = new Set([1, 2, 3]);
let b = new Set([4, 3, 2]);
// 并集
let union = new Set([...a, ...b]);
// Set {1, 2, 3, 4}
// 交集
let intersect = new Set([...a].filter(x => b.has(x)));
// set {2, 3}
// 差集
let difference = new Set([...a].filter(x => !b.has(x)));
// Set {1}
Map const map = new Map([
['name', '张三'],
['title', 'Author']
]);
map.size // 2
map.has('name') // true
map.get('name') // "张三"
map.has('title') // true
map.get('title') // "Author"特殊地方
let map = new Map();
map.set(-0, 123);
map.get(+0) // 123
//
map.set(true, 1);
map.set('true', 2);
map.get(true) // 1
//
map.set(undefined, 3);
map.set(null, 4);
map.get(undefined) // 3
//
map.set(NaN, 123);
map.get(NaN) // 123属性和操作方法:
1、操作方法 size:返回总成员数 set(key, val):设置Map的键名和键值,已有则更新 get(key):获取键名对应的键值,没有则返回undefined has(key):检查该键是否在成员中,返回布尔值 delete(key):删除该键对应的成员,返回布尔值,删除失败返回 false clear():删除所有成员。 2、遍历方法 keys(): values(); entried(): forEach(); map.forEach(function(value, key, map) {
console.log("Key: %s, Value: %s", key, value);
});
数组的转换: 键名转换:[...map.keys()] 键值转换:[...map.values()] 键名键值转换:[...entries()],[...map] 详细参考:http://es6.ruanyifeng.com/#docs/set-map |
|
|