javascript - 如何在 javascript 中按数值对对象进行排序

标签 javascript sorting

我正在尝试对一个对象进行排序,以便得票最多的属性排在第一位。这是我的数据结构 enter image description here

我找到了一些关于如何执行此操作的文章,并且创建了一个新数组,并将投票值以及玩家对象插入其中。我遇到的问题是按数字对选项进行排序,并从数组中删除票数。这是我的代码

    var sortedOptions = [];
    for (let option of options) {
        sortedOptions.push(option, option.votes);
    }

    sortedOptions.sort(function(a, b) {

    })

我一直在关注this但我不明白排序函数是如何工作的以及如何实现我的目的。

感谢您的帮助:)

编辑: 我尝试执行以下代码,但这返回一个具有 8 个选项的对象,并且该对象未排序

    sortedOptions.sort(function(a, b) {
        return a.votes - b.votes;
    })

结果是 enter image description here

最佳答案

您可以使用Array.prototype.sort()

排序函数采用一个函数作为参数,它比较数组的两个元素以确定哪个元素应在何处排序。

对于您想要根据投票进行排序的情况,您可以这样写:

options.sort(function(a, b) {
    // use b - a to sort descending, a - b to sort ascending
    return b.votes - a.votes;
})

您使用的 for 循环很奇怪:它生成一个混合了对象和数字的数组,这就是排序函数不起作用的原因。直接对 options 进行排序,或者如果需要副本,请使用 letsortedOptions = JSON.parse(JSON.stringify(options));

关于javascript - 如何在 javascript 中按数值对对象进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47017749/

相关文章:

javascript - 显示/隐藏密码弄乱了我的 CSS 代码

javascript - 如何按子数组中的第一项对数组进行排序

java - 将 HashMap 键与另一个随机 HashMap 键匹配的算法,从不复制值或匹配自身

java - 计算 String 出现次数并按它们排序的简单方法

python - 在 Python 3 中使用不同类型按键对字典列表进行排序

javascript - 在 NativeScript 应用程序中向 map 添加标记

javascript - 如何在kendo数据源中使用脚本变量

javascript - 如何使用正则表达式在字符串中查找@username

python - 排序 OrderedDict 不起作用

javascript - 如何在js中进行排序?