【问题标题】:when i sort an array its all jumbled up? DISCORD JS当我对一个数组进行排序时,它都混乱了?不和谐
【发布时间】:2020-10-02 12:13:29
【问题描述】:

我找不到有关此问题的任何文档或任何内容。我正在使用 VSC 和 discord.JS,我正在做一个排行榜系统。目标是当用户键入 !top 时,会弹出一个排行榜(嵌入的),其中包含最赚钱的前 10 名。这在重新加载后的每一次第一次都有效(仅有时),但在那之后 .sort 不会t 工作并且排行榜统计数据在其他地方重新洗牌,并且有 $0 的人在顶部。这是我的代码:

    if (msg.content.startsWith("!top")) {
        let moneyC = [];
        let embedT = new Discord.MessageEmbed();
        let membersCurrent = 0;

        msg.guild.members.cache.forEach(element => {
            money.fetchBal(element.id).then((i) => {
                membersCurrent++;
                moneyC.push({ name: element.user.username, moneyT: i.money });
                if (membersCurrent >= msg.guild.memberCount) {
                    moneyC.sort((a, b) => b.money - a.money);
                    for (i = 0; i < 10; i++) {
                        embedT.addField("---", moneyC[i].name + " = " + moneyC[i].moneyT);
                    }
                }
                if (membersCurrent == msg.guild.memberCount) {
                    membersCurrent++;
                    sendEmbed();
                }
            })
        });

        function sendEmbed() {
            console.log(moneyC);
            embedT.setDescription("here are the top 10 people with the highest balance!")
            msg.channel.send(embedT);
            moneyC = [];
        }
    }

这是控制台输出和第一次和第二次的不和谐输出:

控制台:

 { name: 'TheBigCringeMaster', moneyT: 100 },
   { name: 'PogchampInRealLife', moneyT: 0 },
   { name: 'bluestone', moneyT: 0 },
   { name: 'Birdie_YT', moneyT: 0 },
   { name: 'iDopeyScope', moneyT: 0 },
   { name: 'Lewcyる', moneyT: 0 },
   { name: 'Aretimis', moneyT: 0 },
   { name: 'Cam S', moneyT: 0 },
   { name: 'IAmABoomer', moneyT: 0 },
   { name: '$HOO!ER_SavgE', moneyT: 0 },
   { name: 'AwokenYt', moneyT: 0 },
   { name: 'Wingyman2019', moneyT: 0 },
   { name: 'I LOVE EINAR - owo', moneyT: 0 },
   { name: 'Lilly', moneyT: 0 },
   { name: 'Reaction Roles', moneyT: 0 },
   { name: 'boobieman123', moneyT: 0 },
   { name: 'Jamelfarm', moneyT: 0 }

这些是我的一些不和谐成员

这是不和谐的输出@TheBigCringeMaster 是我,总是有最多的钱:

这是图片 = img

【问题讨论】:

    标签: debugging discord discord.js embed leaderboard


    【解决方案1】:

    问题是你正在切换moneyTmoneyaround,

    moneyC.sort((a, b) =&gt; b.money - a.money); => moneyC.sort((a, b) =&gt; b.moneyT - a.moneyT);

    如图所示:

    moneyC.push({ name: element.user.username, moneyT: i.money })

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多