javascript - 在 JavaScript 中定义固定的排序顺序

标签 javascript sorting

我在研究中没有找到任何东西,所以我想有人可以在这里帮助我。

我的问题是我想对包含状态的对象数组进行排序:

{
    "data":[
        {
            "status":"NEW"
        },
        {
            "status":"PREP"
        },
        {
            "status":"CLOS"
        },
        {
            "status":"END"
        },
        {
            "status":"ERR"
        },
        {
            "status":"PAUS"
        }
    ]
}

现在我想设置一个固定的排序顺序,比如所有状态为“END”的对象首先出现,然后所有状态为“PREP”的对象等等。

有没有办法在 JavaScript 中做到这一点?

提前致谢:)

最佳答案

这是一个非常简单的比较操作,使用标准的 .sort() 回调:

var preferredOrder = ['END', 'ERR', ..];
myArray.sort(function (a, b) {
    return preferredOrder.indexOf(a.status) - preferredOrder.indexOf(b.status);
});

关于javascript - 在 JavaScript 中定义固定的排序顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34631908/

相关文章:

javascript - Raphael.js 如何获取纸张的中心点位置和相对于中心的比例?

javascript - 如何使用 classList toggle 来显示/隐藏下拉列表内容?

sorting - Powershell 对带下划线的字符串进行排序

c# - 有没有办法在 C# 中通过引用对对象进行一致的排序/排序?

ruby - ruby 中的排序列表

mysql - 如何按数字和字母顺序对数据进行排序取决于mysql中单个查询的条件

javascript - 来自 JSON 对象的动态 Knockout 表

javascript - JS - 改变 .top 属性

javascript - 在 D3.js 中按内部索引对嵌套数组进行分组

c# - 如何从 List() 中获取整数值的运行总计?