Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将数组中的值添加到对象javascript_Javascript_For Loop - Fatal编程技术网

将数组中的值添加到对象javascript

将数组中的值添加到对象javascript,javascript,for-loop,Javascript,For Loop,我有一个数组 var nestedArr =[['loop0', 0], ['loop1', 1], ['loop2', 2], ['loop3', 3], ['loop4', 4], ['loop5', 5]] 我必须使用这个循环: var obj = { loop0: 0, loop1: 1, loop2: 2 ...}; 我正在尝试: for(var j = 0; j < nestedArr.length; j++){ obj[nestedArr[j][0]] = nes

我有一个数组

var nestedArr =[['loop0', 0], ['loop1', 1], ['loop2', 2], ['loop3', 3], ['loop4', 4], ['loop5', 5]]
我必须使用这个循环:

var obj = { loop0: 0, loop1: 1, loop2: 2 ...};
我正在尝试:

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

但我得到的值是未定义的。如何正确添加值。

您可以使用
reduce
功能,如下所示:

var nestedArr=[
['loop0',0],
[loop1',1],
['loop2',2],
[loop3',3],
[loop4',4],
[loop5',5]
];
var输出={};
nestedArr.REDUCT(功能(itm){
输出[itm[0]]=itm[1];
});

控制台日志(输出)您可以按如下方式使用
reduce
功能:

var nestedArr=[
['loop0',0],
[loop1',1],
['loop2',2],
[loop3',3],
[loop4',4],
[loop5',5]
];
var输出={};
nestedArr.REDUCT(功能(itm){
输出[itm[0]]=itm[1];
});

控制台日志(输出)对我来说很好。刚刚添加了
obj

var nestedArr=[[loop0',0],[loop1',1],[loop2',2],[loop3',3],[loop4',4],[loop5',5],
obj={};
对于(var j=0;jconsole.log(obj)
对我来说很好用。刚刚添加了
obj

var nestedArr=[[loop0',0],[loop1',1],[loop2',2],[loop3',3],[loop4',4],[loop5',5],
obj={};
对于(var j=0;jconsole.log(obj)
使用
Array.prototype.reduce
您可以这样做

var nestedArr=[['loop0',0],'loop1',1],'loop2',2],'loop3',3],'loop4',4],'loop5',5]]
常数res=nestedArr.reduce((acc,v)=>{
acc[v[0]]=v[1];
返回acc;
}, {});

控制台日志(res)使用
数组。原型。减少
您可以这样做

var nestedArr=[['loop0',0],'loop1',1],'loop2',2],'loop3',3],'loop4',4],'loop5',5]]
常数res=nestedArr.reduce((acc,v)=>{
acc[v[0]]=v[1];
返回acc;
}, {});

控制台日志(res)
您可以在JSFIDLE或类似的东西上提供代码片段吗?我真的不理解你的问题。使用声明和初始化的
var obj={}
,代码可以工作。你能提供JSFIDLE或类似的代码片段吗?我真的不理解你的问题。对于声明和初始化的
var obj={}
,代码可以工作。我不是下选者,但是
。当你不返回任何内容时,
.map
是不合适的-使用
.reduce
而不是headmap。。。不使用结果。顺便说一句,op的给定代码有效。我将其更改为
reduce
@Satpal为什么
forEach
?如果将一个数组缩减为一个对象,这正是for循环的
reduce
的作用,这是正确的,并且您可以看到它运行良好。有什么问题吗@blahblahvahI不是向下投票人,但是当您不返回任何内容时,
.map
不合适-使用
.reduce
代替map。。。不使用结果。顺便说一句,op的给定代码有效。我将其更改为
reduce
@Satpal为什么
forEach
?如果将一个数组缩减为一个对象,这正是for循环的
reduce
的作用,这是正确的,并且您可以看到它运行良好。有什么问题吗@blahblahvahit没有解释为什么,但是我得到的值是未定义的。因为它没有给你未定义的。它没有解释为什么,但是我得到的值是未定义的。因为它没有给你未定义的