在角度控制器中显示与从弹簧控制器发送的结果顺序相同的结果顺序

时间:2018-02-16 17:07:16

标签: javascript java angularjs spring javascript-objects

我正在从java弹簧控制器返回一个Map到angularjs控制器。 java控制器中的Map包含以下11,12,14,15,18,22,25,27,34,29的键,映射到我发送给js控制器的值。问题是当我在网页上迭代并显示响应时,它会以11,12,14,15,18,22,25,27,29,34等排序方式显示结果。 如何防止这种情况并按照我从java控制器(i.e.,11,12,14,15,18,22,25,27,34,29)发送的顺序显示(请注意差异在最后两个值34,29)

js code:

angular.forEach($scope.myResponse, function (value, key) {
    //here the results i get are in the order 11,12,14,15,18,22,25,27,29,34.
    //how to show the results as it was sent from java spring controller 11,12,14,15,18,22,25,27,34,29
});

1 个答案:

答案 0 :(得分:0)

如果Chrome可以解析为整数,Chrome会对其进行排序。

来自文档:

  

对象属性交互中的错误顺序

     

ECMA-262未指定枚举顺序。事实上的标准是匹配   插入顺序,V8也可以,但有一个例外:

     

V8不保证数组索引的枚举顺序(即属性)   可以解析为32位无符号整数的名称。

     

记住数组索引的插入顺序会产生大量内存   开销。

     

— Chromium issue #164

为了保证订单,请将数据作为键/值对数组发送。

另见: