我有这个对象:
var myObject = {
cat: {
order: 1
},
mouse: {
order: 4
},
dog: {
order: 2
},
shark: {
order: 3
}
}
Run Code Online (Sandbox Code Playgroud)
我想回去: ["cat", "dog", "shark", "mouse"]
我试过了:
_.sortBy(x, function(e) { return e.order} )
您可以简单地使用Object.keys()和Array.sort().
Object.keys().Comparator给sort函数来简单地对所有键进行排序,该函数比较对象中键的order属性.var myObject = { cat: { order: 1 }, mouse: { order: 4 }, dog: { order: 2 }, shark: { order: 3 } };
let result = Object.keys(myObject).sort((a,b)=> myObject[a].order - myObject[b].order);
console.log(result);Run Code Online (Sandbox Code Playgroud)
首先使用Object.entries,然后按其第二个元素的order属性排序(因为Object.entries返回给定对象自己的可枚举属性[key,value]对的数组),最后使用Array.map来获取所需内容.
var myObject = {
cat: {
order: 1
},
mouse: {
order: 4
},
dog: {
order: 2
},
shark: {
order: 3
}
}
console.log(
Object.entries(myObject).sort((a, b) => {
return a[1].order - b[1].order
}).map(item => item[0])
)Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
110 次 |
| 最近记录: |