[英]How to merge two arrays into an object
var eenhedennamen = ['unit1', 'unit2', 'unit3'];
var value = [1,2,3];
我想要得到的是:
var newobject = {'unit1' : 1
'unit2': 2
'unit3' : 3};
我该怎么做?
假设它们是并行数组( eenhedennamen
的第一个条目使用value
的第一个条目),则可以使用jQuery的$.each
,它为您提供每个条目的索引和条目,并从循环中构建对象。
var obj = {};
$.each(eenhedennamen, function(index, entry) {
obj[entry] = value[index];
});
之所以obj.foo = "bar"
,是因为在JavaScript中,您可以使用点表示法和属性名称文字( obj.foo = "bar"
),也可以使用带字符串属性名称的括号表示法( obj["foo"] = "bar"
)访问属性。 在后一种情况下,字符串可以是任何表达式的结果。 因此,在上面,我们使用entry
作为属性名称,它将是eenhedennamen
每个名称。 然后,当然,我们可以使用index
从value
获得相应的值。
var eenhedennamen = [ 'unit1', 'unit2', 'unit3' ];
var value = [ 1, 2, 3 ];
var z = new Array();
for ( var i = 0; i < eenhedennamen.length; i++) {
z[eenhedennamen[i]]=value[i];
}
先前的答案更好。
尝试这个:
var eenhedennamen = ['unit1', 'unit2', 'unit3'];
var value = [1,2,3];
var arr3 = eenhedennamen.reduce(function(obj, val, i) {
obj[val] = value[i];
return obj;
}, {});
console.log(JSON.stringify(arr3));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.