2012-09-11 43 views
0

我想在Javascript中创建一个嵌套数组,但无法做到我想要的东西,我不知道它是否可能。下面是我想创造什么样的数组的一个例子:在Javascript中理解嵌套数组

var array = ['id1', 'id2', 'id3', 'id4']; 

然后我要添加新的阵列每个ID这样的方式,ID值保持不变。为什么?因为我想使用indexOf方法来找出具有子数组id的主数组的元素索引。事情是这样的:

array[0]['par1'] should return the value of parameter1 
array[0]['par2'] should return the value of parameter2 

... 

array[0] should return "id1" because 

alert(array.indexOf("id1")) must return 0 ; 

如果这样做的一些方法,这将是伟大知道,但如果不是比我想我会用2个阵列,一会抱子阵列和其他的ID

对不起我的英文不好,我尽力解释我的需求。

回答

2

也许你想要做

array[0] = {par1: 'somevalue', par2: someother}; 
array[1] = {par1: 'anotehrone', par2: stillanother}; 

这将作为JavaScript对象,这里被用作关联数组你数组的元素。它们使您可以通过按键来设置或获取元素:

array[0]['par1'] = 'new value'; // write 
var newval = array[0]['par1']; // read 

但是,如果你也想拥有array[0]返回的东西,这不是一个普通的对象,而是一个字符串...那么你可能不希望的JavaScript。这种语言不能像那样工作。

+0

就这样,array [0]将返回对象,而不是“id1”,不是吗? – Irakli

+1

是的。我现在认为,在重读你的问题之后,我应该回答(作为评论),不可能在没有不良黑客的情况下满足你所有的要求。你可能应该使用对象(也许是类)。 –

+0

是的,因为http://jsfiddle.net/unkvs/不起作用,所以我认为这是不可能的 – Irakli