//可以使用map代替数组,使用set代替对象
//map中插入重复的key后面的值会将前面的值覆盖
//set中的值不重复,插入重复的值之后,set会对重复的值进行过滤
{
//遍历
let map1=new Map([['xiaoming',100],['xiaohua',99],['xiaoliang',90]]
);
let set1=new Set([1,2,3]);
//for of
for (var x of map1){
console.log(x)
}
for (var x of set1){
console.log(x)
}
//forEach
//map的回调函数的参数依次为value、key、map
map1.forEach(function (value, key, map) {
console.log(value)
}
);
//set虽然和数组类似,但是set没有索引,所以回调函数的前两个元素
//都是元素本身
set1.forEach(function (element,sameelement,set) {
console.log(element)
});
let item={t:1};
let map=new Map();
let set=new Set();
let obj={};
// 增
map.set('t',1);
set.add(item);
obj['t']=1;
console.info('map-set-obj',obj,map,set);
// 查
console.info({
map_exist:map.has('t'),
set_exist:set.has(item),
obj_exist:'t' in obj
})
// 改
map.set('t',2);
item.t=2;
obj['t']=2;
console.info('map-set-obj-modify',obj,map,set);
// 删除
map.delete('t');
set.delete(item);
delete obj['t'];
console.info('map-set-obj-empty',obj,map,set);
}