我在数组中得到了这个子数组:
["sizes"] array(3) {
["6.5"] "yes"
[7] "no"
["7.5"] "yes"
}
我将此数据作为 json 与其他内容一起发送到脚本,将其转换为 js 对象:
var sizes = obj.items[i].sizes;
然后发生的事情是生成的对象顺序困惑,我得到这样的结果:
Object {7: "no", 6.5: "yes", 7.5: "yes"}
而不是:
Object {6.5: "yes", 7: "no", 7.5: "yes"}
有没有办法强制脚本保留原始顺序?
最佳答案
ES6 在一定程度上指定了对象键顺序,如下所示:
http://www.2ality.com/2015/10/property-traversal-order-es6.html
如果您使用的是 ES3 或 ES5,或者您不喜欢 ES6 顺序,那么最好使用 ES6 MAP polyfill 来为您提供服务。
根据ES6 Map Specs键按插入顺序返回。
关于javascript在转换为js对象时打乱数组顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36651850/