Javascript 为什么JSON.stringify的显示顺序与遍历数组的顺序不同?
我正在编写一个评论系统,我希望能够选择按多数投票排序,这是我在php文件中所做的,然后将数据回显到JavaScript中 当我记录此日志时:Javascript 为什么JSON.stringify的显示顺序与遍历数组的顺序不同?,javascript,php,arrays,json,Javascript,Php,Arrays,Json,我正在编写一个评论系统,我希望能够选择按多数投票排序,这是我在php文件中所做的,然后将数据回显到JavaScript中 当我记录此日志时: console.log(JSON.stringify(commentHopper)); 评论的顺序正确,投票结果如下:900500300,0,0 但是当我像这样迭代数组时: for (var n = 0; n < commentHopper.length; n++) { console.log(commentHopper[n]
console.log(JSON.stringify(commentHopper));
评论的顺序正确,投票结果如下:900500300,0,0
但是当我像这样迭代数组时:
for (var n = 0; n < commentHopper.length; n++) {
console.log(commentHopper[n]);
}
for(var n=0;n
结果按如下顺序排列:0、300、900、0、500您可能处理的是对象而不是数组 尝试
console.log(commentHopper的类型)
如果要“按顺序”遍历对象,可以使用语句
for(var key in commentHopper){
console.log(commentHopper[key]);
}
您确定
commentHopper
是一个数组吗?它可以是一个“类似数组”的对象。您是如何创建它的?kShow告诉我们您的数据结构。您在php中所称的数组并不总是javascript中的数组。对象没有保证的顺序。你能给我们看看php生成的javascript吗?(不是php,ctrl+shift+u)@cantread:好的,所以它是一个数组,不是任何“类似数组”的对象或其他东西。仅供参考,typeof[]
返回“对象”
。这不会告诉你它是否是数组。(请参阅:)您需要检查commentHopper.constructor
。