Javascript - 对 2 参数对象的数组进行排序

Javascript - sorting an array of 2-parameter objects

本文关键字:数组 排序 对象 参数 Javascript      更新时间:2023-09-26

考虑以下数组:

var thingsThatMatter = [
    {"Colour of hair", "High"}, 
    {"Colour of eyes", "Low"}, 
    {"Colour of shoes", "Medium"}
];

对于示例表示歉意,但这里的关键部分是高、中、低参数。
这就是我正在使用的数据(1,2,3会容易得多...!

无论如何,我可以轻松地对数组进行排序,以便项目按顺序运行 - 高、中、低?

或者,有没有办法"获取"将值"Low"作为优先级参数的项目?

注意 - 其结构稍后将更改为数字,但是现在,这是我必须使用的。

Array.sort()与自定义比较函数一起使用。


在这里,有一个饼干:

var thingsThatMatter = [
    ["Colour of hair", "High"],
    ["Colour of eyes", "Low"],
    ["Colour of shoes", "Medium"]
];
function comparator(a, b) {
    a = comparator.priorities[a[1]];
    b = comparator.priorities[b[1]];
    if (a > b) return 1;
    if (a < b) return -1;
    return 0;
}
comparator.priorities = {
    High: 0,
    Medium: 1,
    Low: 2
}
thingsThatMatter.sort(comparator);

http://jsfiddle.net/mattball/T3hNm/