繁体   English   中英

如何将两个数组合并为一个对象

[英]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每个名称。 然后,当然,我们可以使用indexvalue获得相应的值。

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];
}

先前的答案更好。

您可以使用Array.prototype.reduce

尝试这个:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM