android数据存放map_ES6 的新鲜玩意儿——集合set、map、WeekSet、WeekMap
es6新增了Set、Map、WeekSet、WeekMap 四種數(shù)據(jù)結(jié)構(gòu)。C#中有HashSet和Dictionary,HashSet和Dictionary都是范式集合,但是es6不支持接口開發(fā),所以也就不存在范式。Set 是存唯一值的集合,Map是存鍵值對的集合。WeakSet、WeakMap分別是它們的弱式表現(xiàn)的兄弟,只能存對象數(shù)據(jù)結(jié)構(gòu),擁有的方法少很多,使用時需要注意。
1、set:存放代表唯一值的集合。這個唯一是使用Object.is()來判斷的。擼起:
let set = new Set([1,1,"1",2,3,{},["aa","bb","cc"],NaN,NaN]); console.log(set); let set = new Set([1,1,"1",2,3,{},["aa","bb","cc"],NaN,NaN]); console.log(set);//方法列表 set.add("您好");//如果該值已經(jīng)存在,不進行任何修改,沒有該值才新增 set.delete("您好");//刪除一項,如果有該項,返回true,如果沒有返回false set.clear();//清空集合set = new Set([1,1,"1",2,3,{},["aa","bb","cc"],NaN,NaN]);//循環(huán)迭代器 set.forEach(function (value,key) {console.log(key,":",value); }) //生成器 let itr =set.entries(); console.log("itr.next():",itr.next()) console.log("itr.next():",itr.next());//將set 轉(zhuǎn)換為數(shù)組 let arr = [...set];//展開運算符 console.log("arr:",arr);2、WeakSet:存放代表唯一值的集合,是Set的弱化版本,只有add()、has()、delete()方法,不能迭代(foreach()、key()、values()等方法),不可以實例化的時候初始默認值,保存的值必須是對象數(shù)據(jù)結(jié)構(gòu)。擼起:
let wset = new WeakSet(); let key = {name:"愛錢的大傻憨",age:18 };//wset.add("1");//報錯 wset.add(key); console.log("wset:",wset);console.log("wset.delete(key):",wset.delete(key)); console.log("wset:",wset);3、Map:存放代表唯一值的集合,是Set的弱化版本,只有add()、has()、delete()方法,不能迭代(foreach()、key()、values()等方法),不可以實例化的時候初始默認值,保存的值必須是對象數(shù)據(jù)結(jié)構(gòu)。擼起:
let map = new Map([["name","愛錢的大傻憨"],["age",18]]); console.log("map:",map); map.set("work",function(){alert('Hell')});//沒有add方法,只有set方法 console.log("map:",map);4、WeakMap:Map的弱表現(xiàn)數(shù)據(jù)結(jié)構(gòu),相對map來說,功能也是弱很多。
let wmap = new WeakMap(); wmap.set({name:"愛錢的大傻憨"},"您好"); console.log(wmap);Set、Map是es的一種新數(shù)據(jù)結(jié)構(gòu),類似于數(shù)組,但是key是唯一的。WeakSet、WeakMap請少用,因為它的key值要求比較特殊,一定得考慮好了再使用。
總結(jié)
以上是生活随笔為你收集整理的android数据存放map_ES6 的新鲜玩意儿——集合set、map、WeekSet、WeekMap的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1099 元,小米智能门锁 E20 Wi
- 下一篇: 消息称富士明年初有望推出中画幅相机 GF