ES6(七)

这是我参与更文挑战的第7天,活动详情查看: 更文挑战

来啦来啦,接day6

12. Set数据结构

Set和Array 的区别是Set不允许内部有重复的值,如果有只显示一个,相当于去重。虽然Set很像数组,但是他不是数组。

let setArr = new Set(['q','qq','web','qq']);
console.log(setArr);//Set {"q", "qq", "web"}

setArr.add('as');//在使用Array的时候,可以用push进行添加,Set用add。
console.log(setArr); //Set {"q", "qq", "web", "as"}

setArr.delete('as');
console.log(setArr); //Set {"q", "qq", "web"}

console.log(setArr.has('q'));//true,用has进行值的查找,返回的是true或者false。

setArr.clear();//删除

let setArr = new Set(['q','qq','web','qq']);
for (let item of setArr){///for...of循环
    console.log(item);//q qq web
}

复制代码

② size属性可以获得Set值的数量。

let setArr = new Set(['q','qq','web','qq']);
for (let item of setArr){
    console.log(item);
}
console.log(setArr.size);//3
复制代码

③ forEach循环

let setArr = new Set(['q','qq','web','qq']);
setArr.forEach((value)=>console.log(value));//q qq web
复制代码

④.WeakSet的声明

let weakObj=new WeakSet();
let obj={a:'q',b:'qq'}
weakObj.add(obj);
console.log(weakObj);
复制代码

这里需要注意的是,如果你直接在new 的时候就放入值,将报错。

WeakSet里边的值也是不允许重复。

13. map数据结构

①.json和map格式的对比
map的效率和灵活性更好,你可以把它看成一种特殊的键值对,但你的key可以设置成数组,值也可以设置成字符串,让它不规律对应起来。

let json = {
    name:'q',
    skill:'web'
}
console.log(json.name);
var map=new Map();
map.set(json,'iam');//set方法增值
console.log(map);

//Map(1) {{…} => "iam"}
0: {Object => "iam"}
key: {name: "q", skill: "web"}
value: "iam"
size: 1
复制代码

当然也可key字符串,value是对象。调换一下位置,依然是符合map的数据结构规范的。

map.set('q',json);
console.log(map);
//Map(1) {"q" => {…}}
0: {"q" => Object}
key: "q"
value: {name: "q", skill: "web"}
size: 1
复制代码

② map的增删查:

  • 增值set()

  • 取值get map.get(json);

  • 删除特定 map.delete(json);

  • size长度 map.size;

  • 查找是否存在has

console.log(map.has('jspang'))

  • 清除所有元素clear

map.clear()

END.明天见

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享