按重要性对数组进行排序

Jef*_*ado 0 javascript arrays sorting

我有一个重要性数组,我想按重要性排序,如下所示:

let criticalityTypes = ['CRITICALITY_LOW', 'CRITICALITY_HIGH', 'CRITICALITY_MEDIUM'];
Run Code Online (Sandbox Code Playgroud)

我会随机获得此顺序,有时** CRITICALITY_LOW **出现在矩阵的位置1,即位置2或“ CRITICALITY_MEDIUM”位于0位置,

我想做的是按照以下顺序进行排序,而不管我遇到的顺序如何,有时我只有一个或两个临界值:

['CRITICALITY_HIGH', 'CRITICALITY_MEDIUM', 'CRITICALITY_LOW'];
Run Code Online (Sandbox Code Playgroud)

我试图使用排序功能来排序到目前为止我所做的是:

return criticalityTypes.sort((a, b) => {
    if (a < b) return -1;
    if (a > b) return 1;
});
Run Code Online (Sandbox Code Playgroud)

但是没有成功,有什么帮助吗?

Nin*_*olz 5

您可以采用所需顺序的对象,然后按值的增量进行排序。

var criticalityTypes = ['CRITICALITY_LOW', 'CRITICALITY_HIGH', 'CRITICALITY_MEDIUM'],
    order = { CRITICALITY_HIGH: 1, CRITICALITY_MEDIUM: 2, CRITICALITY_LOW: 3 };

criticalityTypes.sort((a, b) => order[a] - order[b]);

console.log(criticalityTypes);
Run Code Online (Sandbox Code Playgroud)