我正在从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
});
答案 0 :(得分:0)
如果Chrome可以解析为整数,Chrome会对其进行排序。
来自文档:
对象属性交互中的错误顺序
ECMA-262未指定枚举顺序。事实上的标准是匹配 插入顺序,V8也可以,但有一个例外:
V8不保证数组索引的枚举顺序(即属性) 可以解析为32位无符号整数的名称。
记住数组索引的插入顺序会产生大量内存 开销。
为了保证订单,请将数据作为键/值对数组发送。
另见: