2014-08-29 38 views
0

我正在寫一個評論系統,我希望可以通過我在php文件中做的大部分upvotes進行排序,然後將數據回顯到JavaScript。爲什麼JSON.stringify以不同於遍歷數組的順序顯示?

當我登錄這樣的:

console.log(JSON.stringify(commentHopper)); 

評價都與upvotes如下面的正確的順序:900,500,300,0,0

但是,當我通過陣列迭代像這樣:

for (var n = 0; n < commentHopper.length; n++) { 
      console.log(commentHopper[n]); 
} 

的結果是在這個順序:0,300,900,0,500

+5

你確定'commentHopper'是一個數組嗎?它可能是一個「類似數組」的對象。你如何創建它?k – 2014-08-29 18:09:31

+4

向我們顯示你的數據結構。 – deceze 2014-08-29 18:09:49

+4

你在php中調用的數組並不總是javascript中的數組。對象沒有保證順序。 – 2014-08-29 18:11:08

回答

0

你可能在處理一個不是數組的對象。

嘗試console.log(typeof commentHopper)

如果你想通過對象「以」你可以使用一個for/in聲明。

for(var key in commentHopper){ 
    console.log(commentHopper[key]); 
} 
+2

只是一個FYI,typeof []'返回''object「'。這不會告訴你它是否是一個數組。 (請參閱:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof)您需要檢查'commentHopper.constructor'。 – 2014-08-29 18:17:20