set 和数组有点相似
一、set 实现数组去重
const set = new Set(['1', '1', 1, 2, 1, 2, 3, 3]);
// ['1', 1, 2, 3]
const set = new Set([[1], [1], 1, 1]);
// [[1], [1], 1] ==> 引用数据类型地址不一样
二、set 的一些方法
set.add()
– 添加元素
let arr = [1, 2, 3];
let set = new Set(arr);
set.add(4);
// arr: [1, 2, 3, 4];
set.add(1);
// arr: [1, 2, 3]; ==> 如果数组里面已经这个元素已经存在,就添加不进去
set.delete()
– 删除一个元素
let arr = [1, 2, 3];
let set = new Set(arr);
set.delete(3);
// arr: [1, 2];
set.has()
– 查看元素是否存在
let arr = [1, 2, 3];
let set = new Set(arr);
set.has(3);
// true
- set.clear() – 清除所有元素
let arr = [1, 2, 3];
let set = new Set(arr);
set.clear();
// set([0]);
三、遍历 set
for...of...
let arr = [1, 2, 3];
let set = new Set(arr);
for (let key of set.values()) {
console.log(key);
}
for (let key of set.keys()) {
console.log(key);
}
// 1
// 2
// 3
for (let key of set.entries()) {
console.log(key);
}
// [1, 1]
// [2, 2]
// [3, 3]
for (let [key, value] of set.entries()) {
console.log(key);
}
// 1, 1
// 2, 2
// 3, 3
forEach
let arr = [1, 2, 3];
let set = new Set(arr);
set.forEach(ele => {
console.log(ele);
})
// 1
// 2
// 3
Map数据结构
Map 是一个键值对的结构
// 初始化一个 map
const map = new Map([
['li', 100],
['zhang', 80],
['chen', 39]
]);
// 创建一个空 map
const map = new Map();
// 用 map.set(key, value) -- 往里面添加键值对
map.set('li', 100);
map.set('zhang', 80);
map.set('chen', 39);
// map.get(key); -- 获取 map 获取键所对应的值
console.log(map.get('li')); // 100
// map.has('key') -- 判断是否存在这个键
console.log(map.has('li')); // true
// map.clear() -- 清除所有键值对
map.clear();
遍历 map 里面的键值对
for...of...
const map = new Map([
['li', 100],
['zhang', 80],
['chen', 39]
]);
for (let prop of map) {
console.log(prop.toString);
}
// li, 100
// zhang, 80
// chen, 39
for (let prop of map.keys()) {
console.log(prop);
}
// li
// zhang
// chen
for (let prop of map.values()) {
console.log(prop);
}
// 100
// 12
// 32
for (let prop of map.entries()) {
console.log(prop);
}
// ["li", 100]
// ["zhang", 12]
// ["chen", 32]
for (let [key, value] of map.entries()) {
console.log(key, value);
}
// li 100
// zhang 12
// chen 32
forEach
const map = new Map([
['li', 100],
['zhang', 80],
['chen', 39]
]);
map.forEach(ele => {
console.log(ele);
})
// 100
// 12
// 32