简体   繁体   English

将值从数组添加到对象javascript

[英]adding values from an array to object javascript

I have an array. 我有一个数组。

var nestedArr =[['loop0', 0], ['loop1', 1], ['loop2', 2], ['loop3', 3], ['loop4', 4], ['loop5', 5]]

I have to get using for loop this: 我必须使用for循环:

var obj = { loop0: 0, loop1: 1, loop2: 2 ...};

I am trying this : 我正在尝试:

for(var j = 0; j < nestedArr.length; j++){
    obj[nestedArr[j][0]] = nestedArr[j][1]}

but I am getting values as undefined. 但我得到的值未定义。 How do I add values correctly. 如何正确添加值。

You can use reduce function as below: 您可以使用reduce函数,如下所示:

 var nestedArr = [ ['loop0', 0], ['loop1', 1], ['loop2', 2], ['loop3', 3], ['loop4', 4], ['loop5', 5] ]; var output = {}; nestedArr.reduce(function(itm) { output[itm[0]] = itm[1]; }); console.log(output); 

Your loop also is correct: 您的循环也是正确的:

 var nestedArr = [ ['loop0', 0], ['loop1', 1], ['loop2', 2], ['loop3', 3], ['loop4', 4], ['loop5', 5] ]; var obj = {}; for (var j = 0; j < nestedArr.length; j++) { obj[nestedArr[j][0]] = nestedArr[j][1] } console.log(obj) 

Working fine for me. 对我来说很好。 Just added the definition of obj 刚刚添加了obj的定义

 var nestedArr =[['loop0', 0], ['loop1', 1], ['loop2', 2], ['loop3', 3], ['loop4', 4], ['loop5', 5]], obj = {}; for(var j = 0; j < nestedArr.length; j++){ obj[nestedArr[j][0]] = nestedArr[j][1] } console.log(obj) 

Using Array.prototype.reduce you can do this. 使用Array.prototype.reduce可以做到这一点。

 var nestedArr =[['loop0', 0], ['loop1', 1], ['loop2', 2], ['loop3', 3], ['loop4', 4], ['loop5', 5]] const res = nestedArr.reduce((acc, v) => { acc[v[0]] = v[1]; return acc; }, {}); console.log(res); 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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