Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.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 JS多维数组内部for循环_Javascript - Fatal编程技术网

Javascript JS多维数组内部for循环

Javascript JS多维数组内部for循环,javascript,Javascript,因此,我有以下几点: var INFO = []; var newMap = {}; function user_info(id,name,url,img){ newMap[id] = [name, url, img]; return newMap ; } ... for (var j = 0; j < 2; j++) { INFO.push(user_info(a,b,c,d));

因此,我有以下几点:

var INFO = [];
var newMap = {}; 
function user_info(id,name,url,img){          
    newMap[id] = [name, url, img];
    return newMap ;   
}

...

for (var j = 0; j < 2; j++) {   
    INFO.push(user_info(a,b,c,d));                                  
}                   
alert(JSON.stringify(INFO, null, 4));               
但得到的结果不是我想要的:

这里的问题是,所有实际阵列都位于其自身的第二层中。

如下所示:

function user_info(map, id,name,url,img){          
    map[id] = [name, url, img];
}

var INFO = [];
var newMap = {}; 
for (var j = 0; j < 2; j++) {   
    user_info(newMap, a,b,c,d)
}                   
INFO.push(newMap);

alert(JSON.stringify(INFO, null, 4));  

我认为这就是您所需要的,尽管在您的示例中,如果不访问j、a、b、c、d变量,很难进行测试:

var INFO = [],
    data = {};
for (var j = 0; j < 2; j++) {
    data[a] = [b, c, d];                               
}
INFO.push(data);           
alert(JSON.stringify(INFO, null, 4));  

不要添加图像,而是添加实际的字符串,添加文本比添加图像容易。a、b、c、d是什么?添加完整的代码,如果可能的话,还可以添加实时演示。它是用户信息ID、名称、url、img,如函数中所示。我不确定这是否相关,因为数组中的元素不是问题,而是通过for循环添加数组。谢谢。好的,请尝试函数user_infodata{for loopoverdata{newMap[id]=[name,url,img];}返回newMap;}INFO.pushuser_infocompleteData;。将完整的数据发送到函数,函数将循环所有数据,在对象中添加单个数组并返回结果。@RyanPicard现在您了解了为什么需要完整的代码来添加有问题的数据。:。它是您正在使用for loop进行循环的数据。
var INFO = [],
    data = {};
for (var j = 0; j < 2; j++) {
    data[a] = [b, c, d];                               
}
INFO.push(data);           
alert(JSON.stringify(INFO, null, 4));