JavaScript 如何存储一个键值对数组
我们给定了两个包含键和值的数组,任务是将其以 **键 = > ** 值的形式作为一个单一实体存储在JavaScript中。在JavaScript中,数组是一种用于存储不同元素的单一变量。当我们需要存储一系列部件并通过一个变量访问它们时,通常使用数组。我们可以使用下面讨论的方法将键 => 值数组存储在JavaScript对象中:
方法1
在这种方法中,我们将使用 Object 来在JavaScript中存储键 => 值。对象在JavaScript中是最重要的数据类型,也是构建现代JavaScript的基石。这些对象与JavaScript的基本数据类型(Number,String,Boolean,null,undefined和symbol)非常不同。对象更加复杂,每个对象可以包含任何组合这些基本数据类型以及引用数据类型。
方法: 我们将遍历整个数组,并逐个将键从键(数组)和值从值(数组)添加到对象中。
语法:
for(var i = 0; i < keys.length; i++){
// obj = Object
// keys = key array
// values = value array
obj[keys[i]] = values[i];
}
示例:
<script>
// An array of keys
var keys = [1, 2, 3];
// An array of values
var values = ["GeeksforGeeks", "Computer", "Science"];
// Object created
var obj = {};
// Using loop to insert key
// value in Object
for(var i = 0; i < keys.length; i++){
obj[keys[i]] = values[i];
}
// Printing object
for (var key of Object.keys(obj)) {
document.write(key + " => " + obj[key] + "</br>")
}
</script>
输出:
1 => GeeksforGeeks
2 => Computer
3 => Science
方法2
在这种方法中,我们将使用Map来在JavaScript中存储键=>值。Map是一个元素的集合,每个元素都以键值对的形式存储。Map对象可以将对象和基本值同时作为键或值进行存储。当我们遍历Map对象时,它以与插入顺序相同的顺序返回键值对。
方法: 我们将遍历整个数组,并逐个将键(数组中的元素)和相应的值(数组中的元素)添加到Map中。
语法:
for(var i = 0; i < keys.length; i++){
// mp = Map
// keys = key array
// values = value array
map.set(keys[i], values[i];
}
示例:
<script>
// An array of keys
var keys = [5, 2, 3, 6, 10];
// An array of values
var values = ["Geeks", "for", "Geeks", "Course", "Algorithm"];
// Map created
var map = new Map();
// Using loop to insert key
// value in map
for(var i = 0; i < keys.length; i++){
map.set(keys[i], values[i]);
}
// Printing
for (var key of map.keys()) {
document.write(key + " => " + map.get(key) + "</br>")
}
</script>
输出:
5 => Geeks
2 => for
3 => Geeks
6 => Course
10 => Algorithm
方法3
在这个方法中,我们将使用reduce在JavaScript中存储键=>值。reduce是用于迭代元素列表的方法。该方法用于将数组减少为单个值,并对数组的每个值(从左到右)执行提供的函数,函数的返回值存储在累加器中。
语法:
array.reduce( function(total, currentValue, currentIndex, arr), initialValue )
示例:
<script>
// An array of keys
var keys = [5, 2, 3, 6, 10];
// An array of values
var values = ["Geeks", "for", "Geeks", "Course", "Algorithm"];
// Using reduce to make
// stroe key value array in object
var ans = values.reduce(( acc, value, i ) => {
acc[keys[i]] = value;
return acc}, {})
// Printing
for (const key in ans) {
console.log(`{key} =>{ans[key]} ` )
}
</script>
输出:
2 => for
3 => Geeks
5 => Geeks
6 => Course
10 => Algorithm
JavaScript最著名的应用是网页开发,但它也被用于各种非浏览器环境。你可以通过阅读此 JavaScript教程 和 JavaScript示例 来逐步学习JavaScript。
极客教程