如何使用动态键名创建 JavaScript 关联数组 { }?

6
基本上,我有一个循环在递增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来合并它们,如果你想知道为什么他这么做 :)

2
创建一个数组有什么问题吗?或者使用循环生成计数器有什么问题吗?你遇到了什么问题? - Marcin
4个回答

10

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

var fish = {};

fish[<propertyName>] = <value>;

1
干杯,问题已解决。而且我需要用$.extend代替$.merge :) - NibblyPig

5

请执行以下操作:

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

这能够实现,是因为你可以像这样使用方括号表示法读写对象:

my_object[key] = value;

并且还有这个:

alert(my_object[key]);

2

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

var fish = { };

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

0

在JavaScript中,多维数组是通过将一个数组保存在另一个数组中来创建的。

尝试一下:

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

代码示例:http://jsfiddle.net/CyK6E/

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接