我在某处读到,不能保证javascript对象中的键顺序。就像浏览器可以决定返回任何感觉一样。
js中有一种名为Map的新型对象,可以让您拥有有序对象。
但是,当我从服务器向浏览器发送数据时如何使用呢?无法传递对象,我必须使用json进行字符串化,然后Map类在浏览器中丢失
答案 0 :(得分:2)
如果您尝试通过JSON发送排序的地图并保留顺序,则可以将地图拆分为键和值的数组,然后将它们放回接收器中。
服务器:
function mapToJSON(map) {
return JSON.stringify({keys: Array.from(map.keys()), values: Array.from(map.values())});
}
客户:
function JSONToMap(json) {
const {keys, values} = JSON.parse(json);
const map = new Map;
keys.forEach(key, i) {
map.set(key, values[i]);
}
return map;
}