2013-10-15 54 views

回答

2

更新:由於data變量使用顯示響應已經是一個CartObject然後使用:

for (var i = 0, len = data.CartLists.length; i < len; i++) { 
    console.log(data.CartLists[i].Item.BrandName); 
} 
+0

'Uncaught TypeError:無法讀取未定義錯誤的屬性「長度」。 – Nothing

+0

@Domo你確定變量'CartObject'存在嗎? – VisioN

+0

是的確定VisioN。無論如何,我做了'console.log(data);'在上面的控制檯映像中打印出對象。 – Nothing

0

到所述一個視力的替代表示如下:

for (var CartItemId in CartObject.CartLists) { 
    Console.log(CartObject.CartLists[CartItemId].Item.BrandName); 
} 

但是,如果您要將原型附加到J SON對象,您可以在for循環中獲取Object而不是整數(Number)。

for (var CartItem in CartObject.CarLists) { 
    Console.log(CartItem.Item.BrandName); 
} 

請注意,如果你打算做的一切權利,你應該插入的for循環如下:

if (CartObject.CarLists.hasOwnProperty(CartItem)) { 
    Console.log(CartItem.Item.BrandName); 
} 

這個例子的工作,但由於在評論中看到下面。它的使用不是它的設計目的。 For-In循環用於遍歷Object屬性,而不是Array項目。

+0

[使用普通的'for'循環循環數組總是更好而不是'for .. in'循環。](http://stackoverflow.com/a/3010848/1249581) – VisioN

+0

在我看來,只要包含'hasOwnProperty'方法,它並不重要。 – larssy1

+0

這意味着它更快,更容易使用'數字'迭代'=)'。 – VisioN