set
数据结构
- 特点:类似于数组,但是里面不能有重复的值
- 用法:
new Set(['a','b',...])
- 注意点:
set
出来的数据没有下标,也就是说它不能通过[][index]
的方式修改数据,也没有get方法,也就是说,改基本没戏
基本使用
let setArr = new Set(['a', 'b', 'c']);
console.log(setArr);
利用set
进行数组去重
let arr = [1, 5, 6, 1, 1, 5, 1, 6, 5, 1, 4];
let setArr = new Set(arr);
console.log(setArr);
let simpleArr = [...setArr];
console.log(simpleArr);
set
的方法
增加:add
方法
let arr = ['张安1', '张安2', '张安3'];
let setArr = new Set(arr);
console.log(setArr.add('addValue'));
console.log(setArr);
删除:delete
方法
let arr = ['张安1', '张安2', '张安3']
let setArr = new Set(arr);
console.log(setArr.delete('张安2'));
console.log(setArr);
清除:clear
方法
let arr = ['张安1', '张安2', '张安3'];
let setArr = new Set(arr);
console.log(setArr.clear());
console.log(setArr);
查询:has
方法
let arr = ['张安1', '张安2', '张安3'];
let setArr = new Set(arr);
console.log(setArr.has('张安3'));
set
的长度:size
let arr = ['张安1', '张安2', '张安3'];
let setArr = new Set(arr);
console.log(setArr.size);
循环 for of / forEach
let arr = ['张安1', '张安2', '张安3'];
let setArr = new Set(arr);
for (const [key, value] of setArr.entries()) {
console.log(key, value);
}
setArr.forEach((item, index) => {
console.log(item, index);
})
set
和数组的相互转换
let arr = ['张安1', '张安2', '张安3'];
let setArr = new Set(arr);
let newSet = new Set([...setArr].map(item => {
return item + '886'
}));
console.log(newSet);
map
数据结构
- 特点:类似json,但是json的键(key)只能是字符串 map的key可以是任意的类型
基本使用
let map = new Map();
console.log(map);
增加:set
let map = new Map();
console.log(map);
console.log(map.set('name', '张三'));
console.log(map.set({
age: 26 }, '张三'));
console.log(map);
取值:get
let map = new Map();
console.log(map.set('name', '张三'));
let json = {
age: 26
}
console.log(map.set(json, '张三'));
console.log(map.get('name'));
console.log(map.get(json));
删除:delete
let map = new Map();
console.log(map.set('name', '张三'));
let json = {
age: 26
}
console.log(map.set(json, '张三'));
console.log(map.delete('name'));
console.log(map);
清空:clear
let map = new Map();
console.log(map.set('name', '张三'));
let json = {
age: 26
}
console.log(map.set(json, '张三'));
console.log(map.clear());
console.log(map);
查询:has
let map = new Map();
console.log(map.set('name', '张三'));
let json = {
age: 26
}
console.log(map.set(json, '张三'));
console.log(map.has('name'));
console.log(map);
map
的长度:size
let map = new Map();
console.log(map.set('name', '张三'));
let json = {
age: 26
}
console.log(map.set(json, '张三'));
console.log(map.size);
循环 for of / forEach
let map = new Map();
console.log(map.set('name', '张三'));
let json = {
age: 26
}
console.log(map.set(json, '张三'));
for (const [key, value] of map.entries()) {
console.log(key, value);
}
map.forEach((item, index) => {
console.log(item, index);
})