JavaScript——Set 的用法


1.set對象的聲明

let set1 = new Set()

2.獲取元素數量

set1.size

3.檢測元素是否存在

set1.has(' ')

4.刪除元素

set1.delete(' ')

4.清除元素

set1.clear()

5.將set對象轉化為數組

//方法一
const set = new Set([1,2,3,4,4,]); [...set];

//方法二
Array.from(set);

6.

// 去除數組重復成員
function dedupe(array) {
  return console.log(Array.from(new Set(array)));
}
 
dedupe([1,1,2,3]);
let set
= new Set(['red', 'green', 'blue']); // 返回鍵名 for(let item of set.keys()) { console.log(item); } // 返回鍵值 for(let item of set.values()) { console.log(item); }
// set 鍵名=鍵值 // 返回鍵值對 for(let item of set.entries()){ console.log(item); }
// 可以直接用 for of遍歷Set
// for in 和 for of的區別是:in 是遍歷對象,of是遍歷值
for (let x of set) {
  console.log(x);
}
 
// set也有forEach()方法
set.forEach((value, key) => console.log(key + ' : ' + value));
// 此處forEach方法的參數是一個處理函數。
 
// 數組的 map 和 filter 方法也可以間接用於Set
let s = new Set([1,2,3]);
 
// map 將原數組映射成新數組
s = new Set([...s].map(x => x * 2));
console.log(s);
 
// filter返回過濾后的新數組
s = new Set([...s].filter(x => (x % 3) ==0));
console.log(s);
 
// 實現並集、交集、差集
let a = new Set([1,2,3]);
let b = new Set([4,3,2]);
 
let union = new Set([...a, ...b]);//並集
console.log(union);
 
let intersect = new Set([...a].filter(x => b.has(x)));//交集
console.log(intersect);
 
let difference = new Set([...a].filter(x => !b.has(x)));//差集
console.log(difference);
 
// 在遍歷操作中,同步改變原來的Set結構的兩種變通方法
 
// 1.利用原Set結構映射出一個新的結構,然后賦值給原來的Set結構
let set1 = new Set([1,2,3]);
set1 = new Set([...set1].map(val => val *2));
console.log(set1);
 
// 2.利用Array.from
let set2 = new Set([1,2,3]);
set2 = new Set(Array.from(set2, val => val * 2));
console.log(set2);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM