2012-03-14 42 views
0

这是一个在过去出现过几次的问题,但我无法理解它。寻求帮助,在JavaScript中构建嵌套数组

这是我的输出是怎么找的那一刻:

0 "affiliate_hoover_plugin_options[1][radioName]:mac" 

1 "checked:true" 

2 "affiliate_hoover_plugin_options[2][radioName]:pc" 

3 "checked:false" 

4 "affiliate_hoover_plugin...ons[3][radioName]:linux" 

5 "checked:false" 

而且这是我希望它看起来:

1: "affiliate_hoover_plugin_options[1][radioName]:mac", "checked:true" 

2: "affiliate_hoover_plugin_options[2][radioName]:pc", "checked:false" 

3: "affiliate_hoover_plugin...ons[3][radioName]:linux", "checked:false" 

这是我的代码的外观:

var newForm = []; 

for (var i = 1; i < oldForm.length; i += 1) { 

newForm.push(oldForm[i].name + ":" + oldForm[i].value); 

if (oldForm[i].type === "radio") { 
    newForm.push("checked" + ":" + oldForm[i].checked); 
} 

} 

console.log(OnewForm); 

现在我要把一个额外的循环放在没有的地方,这就是我迷惑自己的地方。

我想我只是需要休息

回答

1

这样吗?

var newForm = []; 

for (var i = 1; i < oldForm.length; i += 1) { 
    if (oldForm[i].type === "radio") { 
     newForm.push([ oldForm[i].name + ":" + oldForm[i].value, "checked:" + oldForm[i].checked ]); 
    } else { 
     newForm.push([ oldForm[i].name + ":" + oldForm[i].value ]); 
    } 
} 
+0

这是一个可行的解决方案。这不是我正在寻找的东西,但它完成了这项工作,ta – AndyW 2012-03-16 13:06:58

0
var newForm = []; 

for (var i = 0; i < oldForm.length; i++) { 
    var array = []; 
    array.push(oldForm[i].name + ":" + oldForm[i].value); 
    array.push("checked" + ":" + oldForm[i].checked); 
    newForm.push(array); 
} 

console.log(newForm); 

可能工作