我正在开发一个 Discord 机器人,并拥有一个带有 fs(npm 包)的信誉系统,并将人们的代表保存在一个文件中,并按照他们的不和谐 ID 来命名文件名
现在我正在处理前 10 个命令,并且需要一些帮助,我目前有以下代码:
let users = [];
let reps = [];
fs.readdirSync('./data/reps/').forEach(obj => {
users.push(obj.replace('.json', ''))
let file = fs.readFileSync(`./data/reps/${obj}`)
let data = JSON.parse(file)
reps.push(data.reps)
})
let top = [...users, ...reps]
top.sort((a,b) => {a - b})
console.log(top)
用户的文件如下:
{
"users": [
"437762415275278337"
],
"reps": 1
}
users 是当前用户,不能再代表该角色,并且不需要在命令中使用它
我想要获取前 10 名代表,以便我可以获得用户 ID 以及他们有多少个代表,我如何使用上面的代码来做到这一点?
最佳答案
你可以试试这个
const topTen = fs.readdirSync('./data/reps/').map(obj => {
const file = fs.readFileSync(`./data/reps/${obj}`);
const data = JSON.parse(file);
return { ...data, name: obj.replace('.json', '') };
}).sort((a, b) => a.reps - b.reps).slice(0, 10);
console.log(topTen);
关于node.js - 具有 2 个值的数组列表,并将其排序为前 10 个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62271166/