我试图将两个数组作为键值对存储到一个对象中。由于push不能与对象一起使用,我该如何实现呢?
JAVASCRIPT
var data = {};
var array1 = ['name', 'lastname'];
var array2 = ['john','doe'];
期望的输出:
console.log(data);
data: {
name: john,
lastname: doe
}
答案 0 :(得分:0)
您可以使用Array.prototype.reduce()
:
var array1 = ['name', 'lastname'];
var array2 = ['john','doe'];
var data = array1.reduce((acc, value, i) => (acc[value] = array2[i], acc), {});
console.log(data);
reduce
方法的第二个参数是初始值。第一个参数是arrow function,它为array1
的每个元素调用一次。 acc
是初始值或前一次调用的返回值。 value
是array1
的当前元素。 i
是当前元素的索引。此函数将array2
的匹配元素指定为acc
的属性,并使用comma operator返回acc
。
答案 1 :(得分:0)
您可以将thisArg
用于所需对象,并指定相同索引的键和值。
var data = {},
array1 = ['name', 'lastname'],
array2 = ['john','doe'];
array1.forEach(function (k, i) {
this[k] = array2[i];
}, data);
console.log(data);
答案 2 :(得分:0)
您可以使用reduce
方法,该方法接受callback
方法作为参数。
var array1 = ['name', 'lastname'];
var array2 = ['john','doe'];
var data=array1.reduce(function(obj,elem,index){
obj[elem]=array2[index];
return obj;
},{});
console.log(data);