我正在尝试为我的机器人制作排行榜,这是我目前所做的:
const resp = await db.startsWith('Level', { sort: '.data'});
resp.length = 10;
let finalOutput = ' ';
for (var i in resp) {
finalOutput += `**${client.users.get(resp[i].ID.split("_")[1]).tag}** ~-~ Level ${resp[i].data} \n`;
}
它可以100%正常运行,问题是可能有多个用户具有相同级别,所以我尝试了这一点:
const resp = await db.startsWith('Level', { sort: '.data'});
resp.length = 10;
let finalOutput = ' ';
for (var i in resp) {
var us = client.users.get(resp[i].ID.split("_")[1])
var usxp = await db.fetch(`XP_${us.id}`);
finalOutput += `**${client.users.get(resp[i].ID.split("_")[1]).tag}** ~-~ Level ${resp[i].data} (` + usxp + ` XP) \n`;
}
它给出用户的xp,但排序不正确, 例如: lvl 3,XP 200- 等级3,XP 350- lvl 2,xp 100 ...
之所以会这样,是因为其排序取决于级别而不是xp 我该如何解决?