node.js - 具有 2 个值的数组列表并将其放入前 10 名列表
问题描述
我正在开发一个 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 是不能再代表 persion 的当前用户,不需要在命令中使用它
我想获得前 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);
推荐阅读
- html - 攻击者如何规避这一点
- python - 如何将具有多个 Docker 容器的应用程序部署到 AWS Elastic Beanstalk?
- python - 腌制所有变量
- python - 从Python中的字典中删除符合要求的某些值
- dependency-injection - 如何在.net core mvc中使用ModelState包装类分离业务逻辑层
- python - 更新加入熊猫 - python
- file - File.writeAsbytes() 在 Android 4.4.4 Kitkat 上不起作用
- r - 创建数据集的百分位数
- asp.net-core - 为网页添加背景颜色
- reactjs - 对于 React 应用程序,vscode 调试器中的断点通常会失败