Java有LinkedHashMap
但似乎在JavaScript中似乎没有类似的解决方案。
基本上,我希望能够说
var map = {};
map['a'] = 1;
map['b'] = 2;
然后,当我遍历地图时,它们始终处于[{a:1},{b:2} ...]顺序。
答案 0 :(得分:1)
我相信JavaScript Map 对象可以帮助您解决此问题:
let myObject = new Map();
myObject.set('z', 33);
myObject.set('1', 100);
myObject.set('b', 3);
for (let [key, value] of myObject) {
console.log(key, value);
}
// z 33
// 1 100
// b 3
此外,请考虑到这是ES6(ES2015)标准。 干杯。
答案 1 :(得分:0)
您可以使用第二个数组来保留键的顺序。
var order = [];
//add something to map
map['a'] = 1;
order.push('a');
map['b'] = 2;
order.push('b');
//iterate in order
for (var i=0; i< order.length;++i) {
alert(map[order[i]);
}
保留订单数组的一致性可能很棘手,因为在修改原始地图时总是需要更新订单数组。