是否有任何方式來映射在使用Javascript陣列的鍵和值?在我看來,它類似於jQuery的.map()
的東西,但不是唯一的映射值,也是「地圖」的鑰匙。映射鍵/值與JavaScript
假設我有以下數組:
var names = [ 1, 2, 3, 4, 5 ];
,我喜歡使用一種稱爲numberToName()
功能,我創建並生成該另一個數組,其結果應該是這樣的:
var names = { "one": 1, "two": 2, "three": 3, "four": 4, "five": 5 };
目前我使用下面的方法:
var names = [ 1, 2, 3, 4, 5 ],
names_tmp = {},
names_i = 0,
names_len = names.length;
for(; names_i < names_len; names_i++) {
names_tmp[numberToName(names[names_i])] = names[names_i];
}
問題是:有沒有什麼方法可以改進這種方法?我甚至可以毫無問題地使用jQuery。也許類似這樣的功能:
var names = jQuery.mapKeys([ 1, 2, 3, 4, 5], function(k, v) {
return { key: numberToName(v), value: v };
});
呃,不,他不是。這是假裝減少低音ackwards方式是地圖或的foreach ... – dandavis
:第二個是更好的。使用「this」避免了封閉,但... – dandavis
@dandavis:我看你明白的問題,編輯您的帖子。我認爲'forEach'比這裏的map更好(如果你不喜歡減少某些原因)。 – georg