如何在JavaScript中存储键值对数组
有时候,我们需要使用JavaScript中的某种数据结构来将键映射到特定的值。例如,在JavaScript中使用键值对存储用户详细信息是很有用的。
我们可以使用不同的数据结构,例如对象或映射(map),来以键值格式存储数据。
使用对象在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来存储键值对
我们还可以使用map来以键值对的格式存储数据。map类包含了set()方法用于设置数据,并以键和值作为参数。同时,map类还包含了get()方法,以键作为参数并返回映射的值。
语法
用户可以按照以下语法在JavaScript中使用map来存储键值对。
let mapData = new Map();
mapData.set(key, value)
在上述语法中,我们使用Map()构造函数创建了一个新的map对象。同时,我们使用set()方法设置了键和值。
示例2
在下面的示例中,mapKeys数组包含数字字符串。我们遍历数组并将键值对设置到map中。在for循环中,我们使用set()方法来设置map中的键和值。此外,我们将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对象中,包含了上一次迭代的更新键值。在当前迭代中,我们使用索引*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是以键值格式存储数据的最佳方法。