2012-04-29 1 views
0

のオブジェクトの配列をソートするには、以下の配列を検討:例えばJavascriptを2パラメータは

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

謝罪するが、ここで重要な部分は、高、中、低のパラメータです。
これは私が扱っているデータです(1,2,3ははるかに簡単でした...)

私は簡単に配列を並べ替えることができますので、中、低?

また、優先度パラメータとして「低」という値を持つアイテムを「取得」できる方法はありますか?

注 - これの構造は後で数値に変更されますが、これは今のところ私が処理しなければならないことです。

+0

行います高、中、低になる数字を意味し、それに基づいて構造をソートする必要がありますか? – Nadh

+2

構文的に有効なJS、btwではありません。要素が配列またはオブジェクトであることを意味しましたか? –

+1

これらを見てください:http://stackoverflow.com/search?q=javascript+sort+array+of+objects+by+property –

答えて

3

Array.sort() with a custom compare functionを使用してください。ここで


、クッキーを持っている:

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/

+1

OPが配列に含める意味のサイドベットを行いますオブジェクトは配列ではありません。 (つまり、彼のタイプミスは ':' '' '' '' ''ではなく ':' 'であった。 – Telemachus

関連する問題