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 に答える