gpt4 book ai didi

javascript - 我将如何遍历我的 JSON 变量并根据变量的大小对它们进行排序,并保留其他标签

转载 作者:行者123 更新时间:2023-11-29 20:55:07 26 4
gpt4 key购买 nike

我需要遍历我的 JSON 文件,其中信息存储在用户 ID 中,就像这样。

{
"350707981178109964":{"wins":1,"losses":0,"rank":4,"username":"TheeSniper95"},
"426459326031593482":{"wins":0,"losses":0,"rank":1,"username":"Ding Dang Test"},
"267752826623492102":{"wins":0,"losses":0,"rank":1,"username":"MrDooba"}
}

长号是使用discord.js包通过member.idmessage.author.id访问到的用户id。

我需要捕获用户并将他们放在带有用户名和胜利的数组的顶部,他们的胜利越高,他们在排行榜上的排名就越高。但是我在保留用户名和胜利时遇到了麻烦。并获取用户 ID 以访问它并对所有这些 ID 进行排序,然后将其保存在一个变量中。

最佳答案

如果您只需要一个用户数组,而不是按 wins 排序的用户 ID,您可以试试这个:

let board = Object.values(users).sort((a, b) => b.wins - a.wins);

Object.values 方法返回一个对象值数组(即您的用户),然后您使用 sortwins 降序对它们进行排序功能。

如果您需要在您的对象中包含用户 ID,您可以使用 Object.entries获取所有对象的 [key, value] 对,它们使用 map函数创建一个包含用户 ID 的用户数组:

let users = {
"350707981178109964":{"wins":1,"losses":0,"rank":4,"username":"TheeSniper95"},
"426459326031593482":{"wins":0,"losses":1,"rank":1,"username":"Ding Dang Test"},
"267752826623492102":{"wins":10,"losses":0,"rank":1,"username":"MrDooba"},
"267752827723492576":{"wins":3,"losses":0,"rank":1,"username":"Johny"},
"267733277234925765":{"wins":7,"losses":4,"rank":1,"username":"Sam"}
};

let board = Object.entries(users)
.map(([key, val]) => ({id: key, ...val}))
.sort((a, b) => b.wins - a.wins);

console.log(board);

关于javascript - 我将如何遍历我的 JSON 变量并根据变量的大小对它们进行排序,并保留其他标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49714929/

26 4 0