如何在 JavaScript 中儲存鍵值對陣列?
有時,我們需要在 JavaScript 中使用某些資料結構將鍵對映到特定值。例如,在 JavaScript 中以鍵值對的形式儲存使用者詳細資訊非常有用。
我們可以使用不同的資料結構,例如 JavaScript 中的物件或對映,以鍵值對格式儲存資料。
使用物件在 JavaScript 中儲存鍵值對
在 JavaScript 中,物件允許我們以鍵值對格式儲存資料。我們可以使用物件的鍵從物件中獲取資料。
語法
使用者可以按照以下語法使用物件在 JavaScript 中儲存鍵值對
let object = {}; object[key] = value;
在上面的語法中,我們建立了空物件。此外,我們還在物件中儲存特定鍵的值
示例 1
在下面的示例中,我們建立了 keysArray,其中包含數字。valuesArray 包含表示數字的不同字串。
之後,我們使用 for 迴圈遍歷 keysArray。我們從 keysArray 的第 i 個索引中獲取鍵,從 valuesArray 的第 i 個索引中獲取值。對於每個鍵,我們都在物件中儲存值。
最後,我們列印了物件的所有鍵和值。
<html> <body> <h2>Using the <i> objects </i> to store a key => value pairs in JavaScript.</h2> <div id = "output"> </div> <script> var output = document.getElementById('output'); let keysArray = [1, 2, 3, 4, 5, 6]; let valuesArray = ["one", "two", "three", "four", "five", "six"]; let object = {}; for (let i = 0; i < keysArray.length; i++) { object[keysArray[i]] = valuesArray[i]; } for (let key in object) { output.innerHTML += "Key - " + key + " , value - " + object[key] + "<br>"; } </script> </body> </html>
使用對映在 JavaScript 中儲存鍵值對
我們還可以使用對映以鍵值對格式儲存資料。map 類包含 set() 方法來設定資料,並以鍵和值作為引數。此外,map 類包含 get() 方法,該方法以鍵作為引數並返回對映的值。
語法
使用者可以按照以下語法使用對映在 JavaScript 中儲存鍵值對。
let mapData = new Map(); mapData.set(key, value)
我們在上面的語法中使用了 Map() 建構函式來建立一個新的對映物件。此外,我們還使用了 set() 方法來設定鍵和值。
示例 2
在下面的示例中,mapKeys 陣列包含數字字串。我們遍歷陣列並將鍵值對設定為對映。在 for 迴圈內,我們使用 set() 方法在對映中設定鍵值。此外,我們還將 mapKeys 陣列中的鍵作為第一個引數傳遞,並將索引作為第二個引數傳遞。
<html> <body> <h2>Using the <i> mapData </i> to store a Key => value pairs in JavaScript.</h2> <div id = "output"> </div> <script> var output = document.getElementById('output'); let mapKeys = ["one", "two", "three", "four", "five", "six"]; // Creating the new map let mapData = new Map(); for (let i = 0; i < mapKeys.length; i++) { mapData.set(mapKeys[i], i) } for (let mapKey of mapData.keys()) { output.innerHTML += "mapKey - " + mapKey + " , value - " + mapData.get(mapKey) + "<br>"; } </script> </body> </html>
使用 array.reduce() 方法在 JavaScript 中儲存鍵值對
array.reduce() 方法透過減少陣列將陣列轉換為單個元素。我們可以使用 reduce() 方法透過以鍵值對格式將陣列資料儲存在物件中來將整個陣列轉換為單個物件。
語法
使用者可以按照以下語法使用 array.reduce() 方法將陣列資料儲存在物件中。
let object = arrayOfValues.reduce((obj, element, index) => { obj[index * 2] = element; return obj; }, {})
我們在上面的語法中用 {}(空物件)初始化了 obje。我們將陣列的每個元素儲存在 obj 物件中,並從 array.reduce() 方法中返回它。
示例 3
在下面的示例中,我們有一個 arrayOfValues 變數,其中包含字串格式的不同程式語言。我們已將陣列轉換為物件格式,該格式以鍵值對格式儲存陣列資料。
在 array.reduce() 方法中,obj 物件包含來自上次迭代的更新的鍵值。在當前迭代中,我們使用 index *2 作為鍵,並將陣列元素作為物件元素的值。之後,我們返回 obj。
<html> <body> <h2>Using the <i> Array.reduce() method </i> to store a key => value pairs in JavaScript.</h2> <div id = "output"> </div> <script> var output = document.getElementById('output'); let arrayOfValues = ["TypeScript", "JavaScript", "ReactJS", "NextJS", "Python", "C"]; let object = arrayOfValues.reduce((obj, element, index) => { // store element to object obj[index * 2] = element; // return updated object return obj; }, {}) for (let objKey in object) { output.innerHTML += "Key - " + objKey + " , value - " + object[objKey] + "<br>"; } </script> </body> </html>
我們使用了 map、object 和 array.reduce() 方法以鍵值對格式在 JavaScript 中儲存資料。map 是以鍵值對格式儲存資料的最佳方法。