Set,Map,WeakSet,WeakMap的详解和应用

Web前端

Set 相当于一个没有重复值的数组,操作方法:add(), delete(), clear(), has()
let list = new Set();
list.add(1);
list.add(2);
list.add(1);
console.log(list); // [1,2]
重复值不会被添加,也不会报错

利用其特性可以对数组进行去重。
let arr = [1, 2, 3, 4, 2, 3];
let list = new Set(arr);
console.log('size', list.size); // 4
console.lgo('list', list) // [1,2,3,4]

WeakSet 数据元素只能是对象,没有size属性,不能被遍历
let weeklist = new WeakSet();
let arg = {};
weakList.add(arg);

Map 键值对数组,键是任何数据类型(基本类型、数组、对象等等)
let map = new Map();
let arr = ['123'];
map.set(arr, 456);
console.log('map', map); // ['123'] => 456
console.log(map.get(arr)); // 456

let map = new Map([['a', 123], ['b', 456]]);
console.log('map', map); // a => 123, b => 456
console.log('size', map.size); // 2
map.delete('a'); // 删除元素
map.clear(); // 清空元素

WeakMap 键值只能是对象,没有size属性,不能被遍历
let weakmap = new WeakMap();
let o = {};
weakmap.set(o, 123);
console.log(weakmap.get(o)); // 123

我的博客,记录,笔记