我在JavaScript中有一个字典样式的数组对象,如下所示,并希望按属性对其进行排序.怎么做?我知道类似的问题已得到解答,但我认为我的结构不同.简单地运行array.sort(compare)
对我不起作用,因为我没有索引的整数.谢谢!
var myData = { "userOne": { "firstName": "Felix", }, "userTwo": { "firstName": "Bob", }, "userThree": { "firstName": "Anna", } }
我想对上面的数组myData
进行排序,firstName
以便Anna
首先出现对象,然后是Bob
,然后是Felix
.非常感谢!!
您可以使用可迭代的ES6映射:
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"));