我連接的一個API讓我返回一個對象。它的一個鍵/屬性被稱爲「長」,這引發了一些奇怪的行爲:js/jquery:使用名爲「length」的對象鍵問題
var obj = {"text1":{"index":0,"lengt":5}}; //modified key for testing
$.each(obj.text1,function(k,v){
console.log ('i: '+k+' v: '+v); });
i: index v: 0 //this is the result I'm looking for
i: lengt v: 5
var obj = {"text1":{"index":0,"length":5}}; //original object
i: 0 v: undefined // ????
i: 1 v: undefined
i: 2 v: undefined
i: 3 v: undefined
i: 4 v: undefined
我認爲length
是一個保留字,但是這是原來的對象是怎麼來。找出並解決此問題的最佳方法是什麼?
非常感謝您的任何幫助。
在調試代碼時,使用描述性變量名稱會更有幫助(例如key/val for k/v)。另外,不是傳遞'log()'一個字符串,而是發送很多參數(用','-commas替換'+') – vol7ron
_「我假設長度是保留字」_ - 您可以使用保留字作爲屬性名。迭代使用[vanilla JS](http://vanilla-js.com/)'for..in'循環代替jQuery,它可以正常工作。 – nnnnnn
謝謝你的投入。 – Henry