<script type="text/javascript">
//Set 實例的屬性和方法
//add(value):添加某個值,返回 Set 結構本身。
//delete(value):刪除某個值,返回一個布爾值,表示刪除是否成功。
//has(value):返回一個布爾值,表示該值是否爲Set的成員。
//clear():清除所有成員,沒有返回值。
let setAdd =new Set();
let setVal=setAdd.add(1);
console.log(setAdd.size);//1
console.log(setVal);//Set(1) {1}
console.log(setVal.has(1)) // true);
console.log(setVal.delete(1));
console.log(setVal);//Set(0) {}
//Array.from方法可以將 Set 結構轉爲數組。
//這就提供了去除數組重複成員的另一種方法。
const items = new Set([1, 2, 3, 4, 5]);
const array = Array.from(items);
console.log(array);//[1, 2, 3, 4, 5]
function dedupe(array) {//這就提供了去除數組重複成員的另一種方法。
return Array.from(new Set(array));
}
console.log(dedupe([1, 1, 2, 3, 2, 5, 3]));//[1,2,3,5]
//Set遍歷操作
//Set 結構的實例有四個遍歷方法,可以用於遍歷成員。
//keys():返回鍵名的遍歷器
//values():返回鍵值的遍歷器
//entries():返回鍵值對的遍歷器
//forEach():使用回調函數遍歷每個成員
const arr=['a','b','c'];
let setArr=new Set(arr);
for(let list of setArr.keys()){//keys():返回鍵名的遍歷器
console.log(list);
//a
//b
//c
}
for(let item of setArr.values()){//values():返回鍵值的遍歷器
console.log(item);
//a
//b
//c
}
for(let vs of setArr.entries()){//entries():返回鍵值對的遍歷器
console.log(vs);
//["a":"a"]
//["b":"b"]
//["c":"c"]
}
for(let item of setArr){//直接用for...of循環遍歷 Set
console.log(item);
//a
//b
//c
}
//forEach()
//forEach方法的參數就是一個處理函數。該函數的參數與數組的forEach一致,依次爲鍵值、鍵名、集合本身(上例省略了該參數)。這裏需要注意,Set 結構的鍵名就是鍵值(兩者是同一個值),因此第一個參數與第二個參數的值永遠都是一樣的。
setArr.forEach(function(value,key){
console.log(value+":"+key);
//a:a
//b:b
//c:c
})
</script>
es6中 Set屬性方法,以及遍歷
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.