【问题标题】:How do I sort a special JSON Discod.JS如何对特殊的 JSON Discord.JS 进行排序
【发布时间】:2020-10-12 14:34:11
【问题描述】:

我做了一些研究,但找不到如何对这个文件进行排序:

{"228959972271194112":{"xp":3,"level":1},"458982747449589768":{"xp":26,"level":4},"539012914418548737":{"xp":0,"level":2}}

这个文件在我的命令文件(我用 Discord.js 制作一个 Discord Bot)中被调用:

let xp = require("../xp.json");

我想按级别对 ID 进行排序(例如:“228959972271194112”)(我不关心 XP),我看到的所有答案都是排序,而 JSON 以“var blabla = {...”开头,并且我没有,也不想在开始时使用 var。

感谢您的帮助!

【问题讨论】:

    标签: javascript json sorting discord


    【解决方案1】:

    我想按级别对 ID 进行排序(例如:“228959972271194112”)(我不关心 XP)

    嗨,假设您想要一个按级别值升序排序的键数组。您可以首先使用 Object.keys 获取对象中所有键的数组。然后使用 sort 方法并比较每个对象的 level 值。这将返回一个按 level 的值升序排序的所有键的数组。

    let xp = require("../xp.json"); 
    //{"228959972271194112":{"xp":3,"level":1},"458982747449589768":{"xp":26,"level":4},"539012914418548737":{"xp":0,"level":2}}
    const sortedKeysByLevel = Object.keys(xp).sort((key1, key2) => xp[key1]['level'] - xp[key2]['level']); 
    // ["228959972271194112", "539012914418548737", "458982747449589768"]
    

    【讨论】:

    • 非常感谢,现在,我该如何处理 xp ?对于那些具有相同水平的人
    • 好问题。我们可以稍微改进排序函数来检查两个级别是否等于 0。如果它们相等,我们按 xp 排序,否则我们按级别排序。 const sortedKeysByLevel = Object.keys(xp).sort((key1, key2) => xp[key1]['level'] - xp[key2]['level'] === 0 ? xp[key1]['xp'] - xp[key2]['xp'] : xp[key1]['level'] - xp[key2]['level']);
    • 天哪,我花了十分钟来理解你的代码°0°。好吧,现在我想从最大到最小排序,第一行我可以通过将 - 替换为 + 但现在如果我这样做了,“=== 0 ”会变得无法使用吗? ?
    • 我想通了!我倒置了 key1 和 2 ^^' !为我感到骄傲
    猜你喜欢
    • 1970-01-01
    • 2021-06-18
    • 2015-02-08
    • 1970-01-01
    • 2012-12-08
    • 2016-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多