如何使用动态密钥名称创建javascript关联数组{}?

时间:2012-01-06 12:39:33

标签: jquery

基本上我有一个循环递增i,我想这样做:

var fish = { 'fishInfo[' + i + '][0]': 6 };

然而它不起作用。

任何想法如何做到这一点?我希望结果是

fish is { 'fishInfo[0][0]': 6 };
fish is { 'fishInfo[1][0]': 6 };
fish is { 'fishInfo[2][0]': 6 };

我正在使用$ .merge将它们结合起来,如果你认为为什么他会这样做:)

4 个答案:

答案 0 :(得分:10)

声明一个空对象,然后您可以使用数组语法动态地为其分配属性。

var fish = {};

fish[<propertyName>] = <value>;

答案 1 :(得分:5)

这样做:

var fish = {};
fish['fishInfo[' + i + '][0]'] =  6;

它有效,因为你可以阅读&amp;使用方括号表示法写入对象:

my_object[key] = value;

和此:

alert(my_object[key]);

答案 2 :(得分:2)

对于具有对象键的任何动态内容,您需要括号表示法

var fish = { };

fish[ 'fishInfo[' + i + '][0]' ] = 6;

答案 3 :(得分:0)

javascript中的多维数组是通过在数组中保存数组来创建的。

尝试:

var multiDimArray = [];
for(var x=0; x<10; x++){
    multiDimArray[x]=[];
    multiDimArray[x][0]=6;
}

小提示示例:http://jsfiddle.net/CyK6E/