0

考虑以下数组:

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

为这个例子道歉,但这里的关键部分是高、中、低参数。
这就是我正在使用的数据(1,2,3 会更容易......!)

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

或者,有没有一种方法可以“获取”具有“低”值作为优先级参数的项目?

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

4

1 回答 1

3

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


在这里,有一个cookie:

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/

于 2012-04-29T14:35:57.390 回答