2014-01-15 73 views
3

我的問題關聯數組關鍵是下面的,在數組:jQuery的獲得來自指數

var array = new Array(); 
    array['abc'] = 'value1'; 
    array['def'] = 'value2'; 

我如何獲得一個數組的關聯關鍵,如果我有它的指數是多少?假設我想要arr [0]的聯合關鍵字(=>'abc')或arr [1]'=>'def')的關聯關鍵字。這在jQuery中如何實現?

讓我們清楚,我不是在尋找價值,我不需要使用$ .each()。我只需要將0連接到'abc'和1 =>'def'等等。不幸的是,像arr [0] .assoc_key()似乎不存在T_T 感謝一堆。

+1

Javascript沒有本地字典類型,您必須編寫它。 –

+1

這是不可能的,jQuery根本不會出現在圖片中。如果你使用一個數組作爲這樣的字典,你做錯了什麼。 – Jon

+1

重新思考你這樣做的方式。也許嘗試'array [0] = {key:'abc',value:'value1'}' – Geezer68

回答

1

所有權利,使該解決方案是非常簡單的,你需要創建一個對象,其同夥與鍵以及與值的鍵。這是一個JSBin的作品。請注意,要添加一個元素,您需要一個自定義函數(在這種情況下爲addElement),以便能夠在正確的位置關聯各個元和鍵。這是一個粗略的草案,讓你瞭解它是如何完成的!

JSBin

如果您有任何問題或如果這不完全是你所期待的,只需編輯你的問題,我會在它有再多看一眼。如果你想要你所要求的行爲,它必須是一個定製的對象。

+0

非常好!謝謝。 – Gingi

-1

我不知道除了使用for ... in。所以在這裏我怎麼做,並希望你能得到更好的答案(因爲我想知道!)。

var array = new Array(); 
array['abc'] = 'value1'; 
array['def'] = 'value2'; 

var listKeys = []; 
for(x in array) listKeys.push(x); 

console.log(listKeys); // ['abc', 'def'] 

但使用[string]陣列對象上添加屬性的對象,而不是陣列。因此,它可能是更好的初始化它這樣:

var array = {}; 

你可能會學到這種技術在this question以及爲什麼你不應該依賴於一些限制的更多信息。

+0

'for ... in'不能保證訂單。理論上你可以做兩次迭代,並從中得到不同的結果。 – Jon

+0

如果您插入另一個鍵索引將更改。 – stark

0

Javascript沒有本地字典類型,您必須編寫它。 - T McKeown

這是不可能的,jQuery根本不會出現在圖片中。如果你使用一個數組作爲這樣的字典,你做錯了什麼。 - 喬恩

重新思考你正在做的方式。也許嘗試陣列[0] = {關鍵: 'ABC',值: 'VALUE1'} - Geezer68

@ Geezer68,對象不支持多維數據,我工作的陣列爲3級深(我知道我原來的帖子中沒有這麼說,但我認爲這不是相關的)。

無論如何,謝謝你們,它回答了這個問題!我會重新考慮它,然後;-)

編輯:我想我就增加一個級別:

var array = new Array(); 
    array[] = 'abc'; 
    array[0] = 'value1' 
+0

哦,Merci Karl-André以及^^ – Gingi