我将这些值作为一个非常基本的xp系统存储在.json中(我意识到损坏问题,喜欢在移至db之前先学习json)
"267752827723492576":{"xp":308,"level":1}, "267752827723492576":{"xp":308,"level":1}
我想将userid,xp和level导入变量,以便执行排行榜命令,我已经有了进行比较和排序的工作代码(如下)。 “用户”是包含json文件中我的数据的变量
var users = {
"":{"xp":0,"level":0},
"":{"xp":0,"level":0},
"":{"xp":0,"level":0},
"":{"xp":0,"level":0},
"":{"xp":0,"level":0},
};
let board = Object.entries(users)
.map(([key, val]) => ({id: key, ...val}))
.sort((a, b) => b.xp- a.xp);
console.log(board);
帖子不清楚,但您只是不想导入json?
const users = require("path_to.json")
您也可以在fs.readFile
旁边使用JSON.parse
也可以使用数组代替使用对象来存储数据
具有以下格式:(使用地图方法后为相同格式)
[{ id: "", xp: 200, level: 2}]
对于性能来说,它有起有落,实际上通过id来吸引用户可能更快,但是由于必须使用Object.entries
和map
,所以它甚至可以平衡
如果您确实切换到数组,这是获取用户的方式
// ... just stands for data here, not the deconstructing or rest syntax
const json = [{...}, {...}];
const user = json.find(f => f.id === "the-id-here");