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文件进行排序的主要内容,如果未能解决你的问题,请参考以下文章

如何按降序对 JSON 数组元素进行排序? [复制]

如何按降序对列表视图项进行排序

如何按升序和降序对列进行排序?

如何按降序对 ListView.builder 进行排序?

如何在Ruby中按降序对数组进行排序

如何根据特定值按降序对数组进行排序[重复]