所以,我有以下js:
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));
然后,我得到以下结果:
我知道为什么会这样。因为newMap
在第二个和第三个for
循环运行之前没有被清空,并且被多次添加。
有人可以帮我解决此问题或解决此问题,以便只有如下所示的多重阵列:
我尝试执行以下操作:
var INFO = [];
function user_info(id,name,url,img){
var newMap = {};
newMap[id] = [name, url, img];
return newMap ;
}
但是得到以下结果并不是我想要的结果:
这里的问题是所有实际的数组都在它自己的第二层内。
答案 0 :(得分:1)
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));
答案 1 :(得分:1)
我认为这就是你所需要的,尽管如果没有访问你的例子中的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));