1、Set
- Set 本质上也是对象,跟数组类似
- 但是 set中没有重复的元素,如果有,则自动删除
- 声明set时,需要在set构造函数中,传入一个数组
- set无法像数组一样取出里面的元素,所以只能使用 for of 迭代
let arr = [1,1,2,2,3,3,4,4,5,5]
let set2 = new Set(arr);
console.log(arr);
//去重
console.log(set2); // 1,2,3,4,5
set的操作方法
- set转数组 Array.from()
- 根据set的特性,可以进行数组去重
let arr = [1,1,2,2,3,3,4,4,5,5]
let set1 = new Set(arr);
//转数组
arr = Array.from(set1);
console.log(arr);
set的属性和方法
- 1、获取set的长度 size属性 , 跟数组中的length相似
- 2、给set添加元素 add() , 跟数组的push相似
- 3、删除set指定元素 delate()
- 4、判断元素是否在set中 has
- 5、清空set clear()
let arr = [1,2,3,4,5]
let set1 = new Set(arr);
//1、获取set的长度 size属性 跟数组中的length相似
console.log(set1.size);
//2、给set添加元素 add() 跟数组的push相似
set1.add(6);
console.log(set1);
//3、删除set指定元素 delate()
set1.delete(2);
console.log(set1);
//4、判断元素是否在set中 has
console.log(set1.has(2)); //false
console.log(set1.has(4)); //true
//5、清空set clear()
// set1.clear();
// console.log(set1);
2、Map
- map 跟对象类型几乎一摸一样,也是一种键值对的组合
- 但是 map的键(key) 可以是任何类型,包括数组和对象
- 像 对象或者map 这种数据类型,都是键值对的解构
- 这种结构也叫 Hash结构
map的属性和方法
- 1、设置Map对象 set
- 2、获取键对应的值 get
- 3、判断Map中是否包含键对应的值 has
- 4、返回Map对象键/值对的数量 size
- 5、删除Map中的某一个键/值对 delete
- 6、移除Map对象所有的键/值对 clear
// 创建Map
let myMap = new Map();
// 设置Map对象set
myMap.set('Goole','1');
myMap.set('IE','2');
myMap.set('HuoHu','3');
// 获取键对应的值get
console.log(myMap.get('Goole')); // 1
// 判断Map中是否包含键对应的值has
console.log(myMap.has('IE')); //true
console.log(myMap.has('hhss')); //false
// 返回Map对象键/值对的数量size
console.log(myMap.size); //3
// 删除Map中的某一个键/值对delete
console.log(myMap.delete('HuoHu'));
console.log(myMap);
// 移除Map对象所有的键/值对clear
console.log(myMap.clear());
console.log(myMap);
迭代map
//声明Map对象
let myMap = new Map();
//设置Map对象
myMap.set('Goole','1');
myMap.set('IE','2');
myMap.set('HuoHu','3');
// 迭代 Map 中的 key
for(let key of myMap.keys()){
console.log(key);
}
console.log(myMap.keys());
console.log(myMap);
// 迭代 Map 中的 value
for(let key of myMap.values()){
console.log(key);
}
console.log(myMap.values());
// 迭代 Map 中的 key => value
for(let key of myMap.entries()){
console.log(key);
}
// 使用对象解析
for(let [key,value] of myMap){
console.log(key,value);
}
通常使用 forEach 循环map
- 1、第一个参数 是 value
2、第二个参数 是 key
3、与参数名叫什么无关
let m1 = new Map();m1.forEach((value,key) =>{
console.log(value,key);
})
网友评论