discord js如何通过降序对json文件进行排序
Posted
技术标签:
【中文标题】discord js如何通过降序对json文件进行排序【英文标题】:discord js how to sort json file money by descending 【发布时间】:2021-11-17 07:50:37 【问题描述】:我尝试在我的 json 文件中对钱进行排序,但每次我得到“money.slice 不是函数” 有人可以帮忙吗? “money.sort((a,b)=>b.money - a.money);”不工作 我的 JSON 文件:
"2858236346346":"name":"user1","money":100, "346342356347436":"name":"user2","money":1000
我遇到问题的代码:
execute(client, message, args)
let rawdata = fs.readFileSync('./money.json');
let money = JSON.parse(rawdata);
console.log(money);
const res = money.slice().sort((a, b) => b.money - a.money);
console.log(res);
let embed = new Discord.MessageEmbed()
.setTitle("Najbogatsi Gracze")
//if there are no results
if (res.length === 0)
embed.setColor("RED");
embed.setThumbnail("https://i.imgur.com/pWHpi7G.png");
embed.addField("Nie znaleziono danych", "Wpisz na czacie $daily aby zdobyć pieniądze!")
else if (res.length < 10)
//less than 10 results
embed.setColor("BLURPLE");
embed.setThumbnail("https://i.imgur.com/pWHpi7G.png");
for (i = 0; i < res.length; i++)
let member = message.guild.members.cache.get(res[i].id) || "Brak danych"
if (member === "Brak danych")
embed.addField(`$i + 1. $member`, `**Kasa:**: $res[i].moneyzł`);
else
embed.addField(`$i + 1. $member.user.username`, `**Kasa:**: $res[i].moneyzł`);
...
【问题讨论】:
【参考方案1】:没关系,我刚刚发现我们必须使用循环并在这种情况下定义新的“const”“res = [];”那么我们就可以推送一个新的json,然后对其进行排序
let money = JSON.parse(fs.readFileSync("./money.json", "utf8"));
const res = [];
for(let userID in money)
res.push("id": userID, "money": money[userID].money )
res.sort((a, b) => Object.values(b)[1] - Object.values(a)[1])
console.log(money, res);
【讨论】:
以上是关于discord js如何通过降序对json文件进行排序的主要内容,如果未能解决你的问题,请参考以下文章