如何在 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 是以键值对格式存储数据的最佳方法。

更新于: 2023年2月16日

6K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告