2011-07-13 69 views

回答

1

使用for in循環數組時,你應該非常謹慎。改用普通循環。

數組cpl不只是數據而是函數,所以循環中的第三個cp是函數。這就是爲什麼creds轉向未定義。

這個環節有很好的解釋:Why is using "for...in" with array iteration a bad idea?

+0

這是新的信息。爲什麼謹慎? –

+0

@我添加了更多信息。 –

+0

+1在for循環中,您可以選擇一個'cpl [i]'這是一個方法名,例如'cpl [「copy」]'。這將「cp」設置爲'creds = cp [0]'後導致'creds'爲'undefined'的函數toString()(因此字符串'function(start,length)...')' 'creds.toString();'失敗。 –

0

Javascript不需要變量類型,所以刪除toString()即可。

順便說一句,我不知道你可以在原始類型調用toString()int

+0

'data'是一個對象,而不是一個數組,所以我轉換'creds'爲字符串作爲密鑰。如果不需要,至少可以讓意圖更清楚。 –

+0

你應該在之前指定過。 無論如何調用Integer上的'toString()'(如果是)將停止Javascript。你已經嘗試過沒有它? – mastaH

+1

你可以擁有它的數據[''+信條+''](這是兩個單引號,因爲在字符串開始字符串結束)它會將您的號碼轉換爲字符串 – TheBrain