JavaScript 中將物件陣列轉換為物件


給定一個數組,任務是將物件陣列轉換為物件。

輸入-輸出場景

讓我們來看一下將陣列物件轉換為物件的輸入-輸出場景。假設有一個包含物件的陣列。現在,我們需要將這些陣列物件轉換為單個 JSON 物件。

Const Arr = [ {1:'one'}, {2:'two'} ]; Output = { "1":"one", "2":"two" }; //Object

使用 Object.assign()

Object.assign() 方法是 JavaScript 中的一個內建屬性,它將一個或多個物件的自身可列舉屬性複製到目標物件。

語法

以下是 Object.assign() 的語法:

Object.assign(target, ...src)

其中,

  • target 是要複製值和屬性的物件。修改後將返回此目標物件。

  • src 是包含要複製的屬性的源物件。

此 Object.assign() 方法將返回目標物件。

示例

在下面的示例中,我們建立了一個包含物件的陣列。然後我們使用了Object.assign() 方法並將一個空物件作為目標物件傳遞。然後透過使用擴充套件運算子 (…),我們可以將物件的所有元素擴充套件為一系列值。我們將陣列物件複製到空物件中。

<!DOCTYPE html> <html> <head> <title>Converting array of objects to an object</title </head> <body> <button onClick="func()"> Click to convert</button> <p id = "para"></p> <script> function func(){ const Cricket = [ { Team: 'India' }, { Captain: 'Virat kohli' }, { Age: 34 } ]; const obj = Object.assign({}, ...Cricket); document.getElementById("para").innerHTML = JSON.stringify(obj); }; </script> </body> </html>

在輸出中,我們將所有陣列物件屬性複製到目標物件(空物件)。

使用 map() 方法

map() 方法將透過為每個陣列元素呼叫函式來建立一個新陣列,它僅為陣列中的每個元素呼叫一次函式。原始陣列不會被修改。

語法

以下是 JavaScript 中 map() 方法的語法。

map((ele) => { /* … */ })

其中,

  • ele 是正在陣列中處理的當前元素。

map() 方法將在新陣列中返回回撥函式的結果,即每個元素。

示例

在下面的示例中,我們有一個物件陣列。在 map() 方法中,我們傳遞了 (item) 作為引數,它將在陣列中被處理,並且我們向 map() 方法傳遞了一個函式,該函式將以陣列的形式返回屬性(因為 map() 方法以陣列形式返回輸出)

因此,要轉換此物件陣列,我們使用 object.assign() 方法。透過使用擴充套件運算子 (…),我們提取 map() 方法輸出的所有元素並將它們複製到目標物件(空物件)。

<!DOCTYPE html> <html> <title>Convert an array of objects to an object</title> <head> <button onClick="func()"> Click to convert</button> <p id = "para"></p> <script> const players = [ {name:'Dhoni',team:'India'}, {name:'Dilshan',team:'Srilanka'}, {name:'Daniel sams',team:'Australia'}, {name:'Dinesh karthik',team:'India'} ]; function func(){ var res = players.map(item => ({ [item.name]: item.team }) ); var obj = Object.assign({}, ...res ); document.getElementById("para").innerHTML = JSON.stringify(obj); }; </script> </head> </html>

如我們所見,物件陣列已轉換為物件。

示例

for 迴圈

在下面的示例中,我們有一個物件陣列。我們運行了一個 for 迴圈並遍歷陣列。該迴圈將nameteam 分配到空物件,直到它分配所有屬性。然後我們列印空物件,並將得到 name – team 對作為物件。

<!DOCTYPE html> <html> <head> <title>Convert an array of objects to an object</title> </head> <body> <button onClick="func()"> Button </button> <p id = "para"> </p> <script> function func(){ var batsmen = [ {name : 'Virat', team : 'India'}, {name : 'Ponting', team : 'Australia'}, {name : 'Kallis', team : 'South Africa'} ]; var obj = {}; let x = 0; let len = batsmen.length; for (x; x < len; x++) { obj[batsmen[x].name] = batsmen[x].team; } document.getElementById("para").innerHTML = JSON.stringify(obj); }; </script> </body> </html>

在輸出中,我們使用 for 迴圈和空物件將物件陣列轉換為物件。

更新於: 2022-09-23

397 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.