所以我正在研究一个具有等级系统的不和谐机器人。我已经到了有一个看起来像这样的对象的地步:
let ranks = {
"Joe": 1,
"Mary": 6,
"Johnson": 4
}
所以我需要按级别对它们进行排序,使其看起来像这样:
let ranks = {
"Mary": 6,
"Johnson": 4,
"Joe": 1
}
我不知道如何做到这一点。我尝试将值放入列表并使用 names.sort() 但这不起作用。任何帮助都会得到帮助。
答案 0 :(得分:0)
我看不出对对象属性进行排序的原因。由于Object.entries
例如
let sortedArr = Object.entries(ranks).sort((a,b) => (b[1] -a[1]));
然后你在 Object.fromEntries()
let sortedObj = Object.fromEntries(sortedArr)
答案 1 :(得分:0)
使用此代码
let ranks = {
"Joe": 1,
"Mary": 6,
"Johnson": 4,
'Ahmed': 1
}
console.log( ranks)
//get the keys
var keys = Object.keys(ranks)
var testArray = [] ;
// get a new array to work on
keys.forEach(key=>{
testArray.push(key)
})
// sort the keys
var sortedKeys = testArray.sort()
// get the right values of the sorted keys
var sortedVals = []
sortedKeys.forEach(Skey =>{
sortedVals.push(ranks[Skey])
})
//clear the old ranks
ranks = {}
var i = 0;
// get the new ranks object
sortedKeys.forEach(key=>{
ranks[key] = sortedVals[i]
i++
})
console.log( ranks)