标签:update 添加 去重处理 支持 列表 唯一性 下标 只读 不重复
一.Set 无重复列表类型
特点:
1.没有下标,不是按照下标存储,但是是有序的,因此不能使用下标循环遍历
2.没有重复元素,任何元素存在唯一性,因此可以用来作去重处理,存储不重复的数据,
3.插入速度和删除速度非常快,遍历查找速度也非常快,但是略低于键值对类型。
4.支持方法:add(添加) delete(删除) has(查找) forEach(遍历)
属性: size 长度,只读的,没有length,
2.使用方法:
1)数组去重
var arr=[1,3,5,7,2,4,3,5,1,2,6,5,7,8,9,1,2,4,3,5,7,9];
arr=Array.from(new Set(arr));
console.log(arr);
2)存储数据(不能重复) 和数组对比
//数组存储
var manager={
list:[],
add(elem){
if(this.list.indexOf(elem)>-1) return; //判断重复
this.list.push(elem);
},
remove(elem){
var index=this.list.indexOf(elem);
if(index<0) return;
this.list.splice(index,1);
},
update(){
for(var i=0;i<this.list.length;i++){
this.list[i].update();
}
}
}
//Set存储
var manager={
list:new Set(), //不需要进行存储
add(elem){
this.list.add(elem);
},
remove(elem){
this.list.delete(elem);
},
update(){
for(let value of this.list){
value.update();
}
}
}
//很明显在进行存储时比数组有优势
3.遍历
1)forEach
var a=new Set([1,2,3,4,5]);
a.forEach(function(value1,value2,a1){
console.log(value1,value2,a1); //相当于对象的key和value,只是set中的key和value相等
})
2)for of 按照元素遍历
var a=new Set([1,2,3,4,5]);
for(let value of a){
console.log(value);
}
二.map 是一种有长度的键值对数据类型
特点
1.hashMap 键值对的数据类型 map对象是关联型的对象,类似php中关联型的数组结构
2.具备数组的长度紧密型,又具备对象的键值对方法
3.它的获取,删除,查询,遍历速度很快
4.任何数据类型都可以作为键进行存储,对象存储用的是引用地址进行存储的
支持方法
var map=new Map();
map.set("name","morty"); //1.添加元素
map.set("age",27);
map.delete("name"); //2.删除键名(删除元素)
console.log(map)
//map.clear(); //3.清除掉所有数据
console.log(map.has("age")); //4.判断某个键是否存在 返回布尔值
console.log(map.get("age")) //5.获取某个键的值 27
console.log(map.values());// 6.获取所有值的列表 {"morty", 27}
console.log(map.keys()); // 7.获取所有键的列表 {"name", "age"}
遍历方法
1.forEach
map.forEach(function(value,key,map){ //键值 键 原对象
console.log(value,key);
})
2.for of
1)
for(let key of map.keys()){ //遍历键
console.log(key);
}
2)
for(let value of map.values()){ //遍历键值
console.log(value);
}
3)
for(let arr of map.entries()){ //遍历每个元素 返回多个数组,每个元素一个数组
console.log(arr);
}
for(let arr of map.entries()){
console.log(arr[0],arr[1]); //获取每个元素的键和键值
}
标签:update 添加 去重处理 支持 列表 唯一性 下标 只读 不重复
原文地址:https://www.cnblogs.com/94-Lucky/p/13362600.html