如何從索引中減去1(或任何數字)而不減少它(變量中沒有值的變化)?如何從JavaScript中的前一個索引號中減去1
這裏是我的代碼片段:
if (i > 0 & areaImages[i].id == areaImages[i-1].id)
我從螢火蟲收到此錯誤信息:
TypeError: areaImages[i - 1] is undefined
如何從索引中減去1(或任何數字)而不減少它(變量中沒有值的變化)?如何從JavaScript中的前一個索引號中減去1
這裏是我的代碼片段:
if (i > 0 & areaImages[i].id == areaImages[i-1].id)
我從螢火蟲收到此錯誤信息:
TypeError: areaImages[i - 1] is undefined
沒有遞減。實際的原因是你使用了錯誤的操作符。
if (i > 0 && areaImages[i].id == areaImages[i-1].id)
// ^^
對於布爾值,既&
和&&
將返回相同的(高達==
)的結果。但是關鍵的區別是&&
是short-circuiting,即當&&
的左側是false
時,則右側將不被評估。
原代碼的問題是,&
是不短路,所以areaImages[i-1].id
將被評估,即使i <= 0
。但是i-1
是無效索引,因此areaImages[i-1]
未定義,並且您無法從undefined獲取屬性,從而導致TypeError。
考慮使用http://jshint.com來警告你這種常見的錯誤。 –