2012-09-11 45 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