在 JavaScript 中將陣列轉換為集合

Mehvish Ashiq 2023年10月12日
  1. 在 JavaScript 中使用 set 建構函式將陣列轉換為 Set
  2. 在 JavaScript 中使用 map() 函式將陣列轉換為 Set
  3. 在 JavaScript 中使用 reduce() 函式將陣列轉換為 Set
  4. 在 JavaScript 中使用 set 建構函式和 map() 函式將物件陣列轉換為多個 Sets
在 JavaScript 中將陣列轉換為集合

本教程展示了將陣列轉換為 set 的過程,並瞭解如何使用 JavaScript 將物件陣列轉換為多個集合。

我們可以通過不同的路徑將陣列轉換為 JavaScript 中的 set 轉換。下面列出了其中一些,我們將在本教程的後面部分進行探討。

  • set 建構函式。
  • map() 函式。
  • reduce() 函式。
  • 同時使用 set 建構函式和 map() 函式。

在 JavaScript 中使用 set 建構函式將陣列轉換為 Set

JavaScript 程式碼:

var array = [5, 4, 6];
var set = new Set(array);
console.log(set.size === array.length);
console.log(set.has(6));

輸出:

true
true

我們將 array 傳遞給 set 建構函式以將陣列轉換為 set。然後,我們使用 set.size === array.length 比較陣列的大小/長度和 set

此外,我們使用 has() 方法來檢查 set 是否具有陣列中的元素。

在 JavaScript 中使用 map() 函式將陣列轉換為 Set

JavaScript 程式碼:

var array = [5, 5, 4, 6];
var set = new Set();
array.map(arrElement => set.add(arrElement));

set.forEach(item => {
  console.log(item);
});

輸出:

5
4
6

map() 方法通過對每個陣列的元素執行一次方法而不更新實際陣列來構造一個新陣列,而 add() 方法獲取陣列元素並將其新增到 set 中。

最後,我們使用 forEach 迴圈遍歷 set 並在控制檯上列印元素。

如上面的輸出所示,它在 set 中只有一個數字五(5)。set 僅包含唯一值,因此在轉換為 set 時務必小心,當你有冗餘資料(重複資料/值)時切勿轉換為 set

在 JavaScript 中使用 reduce() 函式將陣列轉換為 Set

JavaScript 程式碼:

var array = [5, 5, 4, 6];
var set = new Set();
array.reduce((_, item) => set.add(item), null);

set.forEach(item => {
  console.log(item);
});

輸出:

5
4
6

我們使用 reduce() 方法將陣列轉換為 setreduce() 函式為陣列的每個元素呼叫 reducer 方法,並將累積的答案作為單個值返回。

在 JavaScript 中使用 set 建構函式和 map() 函式將物件陣列轉換為多個 Sets

JavaScript 程式碼:

let array = [
  {name: 'Mehvish', age: 36}, {name: 'Thomas', age: 23},
  {name: 'Christopher', age: 45}
];
let namesSet = new Set(array.map(item => item.name));
let ageSet = new Set(array.map(item => item.age));

namesSet.forEach(item => {
  console.log(item);
});

ageSet.forEach(item => {
  console.log(item);
});

輸出:

"Mehvish"
"Thomas"
"Christopher"
36
23
45

最後一個例子表明我們可以將一個物件陣列轉換為多個 sets。在我們的例子中,我們製作了兩個 set,一個用於名稱,另一個用於年齡。

作者: Mehvish Ashiq
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

相關文章 - JavaScript Array

相關文章 - JavaScript Set