在firefox和chrome中更改.each()的顺序

Hor*_*and 5 each jquery

我有一个Web服务,它返回一个JSON编码的数据数组.然后我使用jQuery的.each()函数来遍历该数组,但是在Firefox中它会向下迭代,而在Chrome中它会迭代.

从Web服务返回的数据是:

{
  "data": {
    "610": {
      "id": "610",
      "url": "a url 1",
      "description": "XXX YYY",
      "toc": "0000-01-00",
      "active": "1"
    },
    "608": {
      "id": "608",
      "url": "a url 1",
      "description": "ytttgffrr",
      "toc": "0000-01-00",
      "active": "1"
    },
    "607": {
      "id": "607",
      "url": "a url  3",
      "description": "rtretert3",
      "toc": "0000-01-00",
      "active": "1"
    },
    "606": {
      "id": "606",
      "url": "a url 4",
      "description": "xxxwwww",
      "toc": "0000-01-00",
      "active": "1"
    },
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

Firefox进入610 - > 606,而Chrome则为606 - > 610.

任何想法为什么以及我能做些什么呢?

Mat*_*ens 7

对象中的属性没有固有的顺序.ECMAScript规范不保证for…in语句将按字母顺序通过其属性遍历对象.在物体上jQuery.each使用时for…in在引擎盖下使用.

如果订单对您很重要,请使用数组而不是对象.