2013-07-26 84 views
1

如何升級以下對象以便生成下面列出的輸出?對存儲在對象中的鍵值項目進行迭代

var obj = { a: "1", b: "2", c: "3" }; 

預期輸出:

指數:0 VALUE1:一個值2:1
索引:1 VALUE1:乙VALUE2:2
指數:2值1:C值2:3

+0

ü應該參閱作爲VALUE1鍵和value2作爲值IMHO – DarkBee

+0

http://stackoverflow.com/questions/3068534/getting-javascript-object-key-list – DarkBee

+0

'obj.length'是未定義的簡單像這樣的對象... – filmor

回答

4

您可以使用for .. in來替代對象的鍵,並使用單獨的索引計數器:

var index = 0; 
for (var key in obj) { 
    console.log("index: " + index + " value1: " + key + " value2: " + obj[key]); 
    ++index; 
} 

如果你的環境理智,這應該是正常的;如果沒有,你將不得不添加強制性hasOwnProperty()支票。

在現代瀏覽器中使用Object.keys()對對象鍵進行迭代是可能的,但是如果內存太緊,上述方法將更可取。

2

在現代瀏覽器中,你可以循環是這樣的:

Object.keys(obj).forEach(function(key, i){ 
    console.log('index: '+ i, 'key: '+ key, 'value: '+ obj[key]); 
}); 
1

這是一個對象,你試圖重複其作爲數組。使用for-in結構。

var obj = { a: "1", b: "2", c: "3" }; 

for(var opt in obj) { 
    console.log(opt + ": " + obj[opt]); 
}