JavaScript 按属性值对字典进行排序

标签 javascript arrays node.js sorting dictionary

<分区>

我在 JavaScript 中有一个字典样式的数组对象,如下所示,我想按属性对其进行排序。这将如何完成?我知道与此类似的问题已得到解答,但我认为我的结构有所不同。简单地运行 array.sort(compare) 对我不起作用,因为我没有用于索引的整数。谢谢!

var myData = {
    "userOne": {
        "firstName": "Felix",

    },
    "userTwo": {
        "firstName": "Bob",

    },
    "userThree": {
        "firstName": "Anna",

    }
}

我希望上面的数组 myDatafirstName 排序,这样带有 Anna 的对象首先出现,然后是 Bob,然后是 Felix。非常感谢!!

最佳答案

您可以使用可迭代的 ES6 map :

var myData = new Map();
myData.set('userOne', {'firstName': 'Felix'});
myData.set('userTwo', {'firstName': 'Bob'});
myData.set('userThree', {'firstName': 'Anna'});

function sortByProp(data, prop) {
  return new Map([...data.entries()].sort((a, b) => a[1][prop] > b[1][prop]));
};

console.log(sortByProp(myData, "firstName"));

关于JavaScript 按属性值对字典进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34731057/

相关文章:

JavaScript 对象转字符串

node.js - 比较 MongoDB 中的两个日期字段

javascript - 如何在 Docker 构建上缓存 node_modules?

javascript - 如何在 JavaScript 中比较数组?

javascript - 获取formData附加数据

javascript - 如何将此文本的背景图像设置为 svg?

javascript - Node js 对象导出

javascript - d3 : linearly interpolate only close-enough points

c++ - 在2维数组上使用delete []时发生访问冲突

c++ - 对象数组 C++