[英]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.