es6学习-10
Set和WeakSet數據結構
這節學習Set數據結構,注意這里不是數據類型,而是數據結構。它是ES6中新的東西,并且很有用處。Set的數據結構是以數組的形式構建的。
Set的聲明
let setArr = new Set(['jspang','技術胖','web','jspang']); console.log(setArr);//Set {"jspang", "技術胖", "web"}Set和Array 的區別是Set不允許內部有重復的值,如果有只顯示一個,相當于去重。雖然Set很像數組,但是他不是數組。
Set值的增刪查
追加add:
在使用Array的時候,可以用push進行追加值,那Set稍有不同,它用更語義化的add進行追加。
let setArr = new Set(['jspang','技術胖','web','jspang']); console.log(setArr);//Set {"jspang", "技術胖", "web"} setArr.add('前端職場'); console.log(setArr);刪除delete:
let setArr = new Set(['jspang','技術胖','web','jspang']); console.log(setArr);//Set {"jspang", "技術胖", "web"} setArr.add('前端職場'); console.log(setArr); //Set {"jspang", "技術胖", "web", "前端職場"} setArr.delete('前端職場'); console.log(setArr); //Set {"jspang", "技術胖", "web"}查找has:
用has進行值的查找,返回的是true或者false。
let setArr = new Set(['jspang','技術胖','web','jspang']); console.log(setArr);//Set {"jspang", "技術胖", "web"} console.log(setArr.has('jspang'));//true刪除clear:
let setArr = new Set(['jspang','技術胖','web','jspang']); console.log(setArr);//Set {"jspang", "技術胖", "web"} setArr.clear();console.log(setArray);//true? set的循環
for…of…循環:
let setArr = new Set(['jspang','技術胖','web','jspang']); for (let item of setArr){console.log(item); }size屬性
size屬性可以獲得Set值的數量。
let setArr = new Set(['jspang','技術胖','web','jspang']); for (let item of setArr){console.log(item); }console.log(setArr.size);forEach循環
let setArr = new Set(['jspang','技術胖','web','jspang']); setArr.forEach((value)=>console.log(value));WeakSet的聲明
let weakObj=new WeakSet(); let obj={a:'jspang',b:'技術胖'} weakObj.add(obj);console.log(weakObj);這里需要注意的是,如果你直接在new 的時候就放入值,將報錯。
WeakSet里邊的值也是不允許重復的,我們來測試一下。
let weakObj=new WeakSet(); let obj={a:'jspang',b:'技術胖'} let obj1=obj;weakObj.add(obj); weakObj.add(obj1);console.log(weakObj);總結:在實際開發中Set用的比較多,WeakSet用的并不多,但是他對傳入值必須是對象作了很好的判斷,我們靈活應用還是有一定的用處的。
?
轉載于:https://www.cnblogs.com/xiaofandegeng/p/9049213.html
總結
- 上一篇: java安装jdk错误1316 指定的账
- 下一篇: reStructuredText(.rs