Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么JSON.stringify的显示顺序与遍历数组的顺序不同?_Javascript_Php_Arrays_Json - Fatal编程技术网

Javascript 为什么JSON.stringify的显示顺序与遍历数组的顺序不同?

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]

我正在编写一个评论系统,我希望能够选择按多数投票排序,这是我在php文件中所做的,然后将数据回显到JavaScript中

当我记录此日志时:

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