javascript - 是否可以对 ES6 map 对象进行排序?

标签 javascript ecmascript-6

是否可以对 es6 映射对象的条目进行排序?

var map = new Map();
map.set('2-1', foo);
map.set('0-1', bar);

结果:

map.entries = {
    0: {"2-1", foo },
    1: {"0-1", bar }
}

是否可以根据键对条目进行排序?

map.entries = {
    0: {"0-1", bar },
    1: {"2-1", foo }
}

最佳答案

根据 MDN 文档:

A Map object iterates its elements in insertion order.

你可以这样做:

var map = new Map();
map.set('2-1', "foo");
map.set('0-1', "bar");
map.set('3-1', "baz");

var mapAsc = new Map([...map.entries()].sort());

console.log(mapAsc)

使用.sort(),记住数组是根据每个字符的Unicode代码点值,根据每个元素的字符串转换排序的。所以 2-1, 0-1, 3-1 将被正确排序。

关于javascript - 是否可以对 ES6 map 对象进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31158902/

相关文章:

javascript - 有没有更有效的方法来使用 angularjs 序列化表单?

javascript - React 中这两个 ES6 箭头函数有什么区别?

javascript - ES6 : Bind Click or OnChange Event in string literal

javascript - 这个 ES6 函数声明如何有效?

javascript - 使 webpack 库输出与 babel 6 兼容

javascript - 是否可以自定义 highchart.js 库中堆栈参数的功能

javascript - 如何防止子级点击事件冒泡到父级?

javascript - ChartJs 中 X 轴的特定网格线

Javascript Regex - 从字符串 html 获取 div ID

javascript - 类构造函数中的 "Cannot access uninitialized variable."