JSオブジェクトの属性に応じてソートされたオブジェクトの配列

1.オブジェクトの配列

私たちは今、オブジェクトのセットを持っている「名前、値が」値に従ってソートされ、これらの目的を達成するために、属性が含まれています。

シリーズ:[ 
{名: '西安'値:100}、
{名: '瀋陽K'値:120}、
{名: '延安市'値:80}、
{名前:「ダンロップ市'値:90}、
{名前:'楡林」値:130}
]

2.ソート方法

実際には配列オブジェクトのソート方法。

Array.sort(楽しいです)

楽しみが戻り値が0の位置を交換することなく、2つの要素を示す未満である場合に、判定され、ソートがこの関数の戻り値に基づいて実行される機能であり、位置1は、対話型使用を表し、0に等しい実際には<= 0と等価である、を示しています。

2つのソート注意事項があります。

  1. 操作は、元の配列を変更した後は、元の配列で動作します
  2. デフォルトでは、ソートソート文字エンコーディングによって、例えば、我々は次の例のいずれかを持っています:
ARR1の= VAR [14,23,11,6,87,67]; 
arr1.sort(); // [11,14,23,6,67,87]並びの代わりに数字によって

の開発を規制するために、ソートパラメータ(機能)を通過しなければならない値比較の並べ替えを達成したいです:

sortRule関数(A、B)は{ 
  ABを返す&; //> = bは、自然数を返した場合、位置を変更しない
} 
arr1.sort(sortRule)。

あなたは、各要素が値が、オブジェクトではありません発生した場合は、それはそれに対処する方法をすべきですか?実際に、それは同じですが、我々はレギュレーション機能における規制の適合対象を書き換える必要があります:

functon sortRule(B){ 
    a.value- b.valueを返します。
}

もちろん、オブジェクト配列要素の値プロパティが存在しない場合、それはエラーとなり、したがって、あなたが独自のルールを書き、私たちはオブジェクトの配列のクリアケースにソートすることを知っている、唯一のオブジェクトのvalueプロパティを書きます、裁判官のルールは、他のプロパティに適用されるべきです。

私たちが順にソートするプロパティを指定しない場合、例えば、プロパティを値に加えて、我々はそれを行うべきか、このアルゴリズムを繰り返すことを期待して、他の性質を持っていますか?

関数SORTBY(小道具){ 
    return関数(B){ 
        [小道具]を返す- [小道具] B。
    } 
} 
arr1.sort(SORTBY( "値"));

はい、コアコードはとてもシンプル。このアイデアを、以下では、私たちはアイデアを行うことができます。値が状況下で等しい場合、我々は他の属性の出力の大きさを並べ替えることができますか?

関数SORTBY(FIELD1、FIELD2){ 
    return関数(B){ 
        IF(a.field1 == b.field1)戻りa.field2 - b.field2。
        a.field1を返す- b.field1。
    } 
} 
arr1.sort(SORTBY( "値"、 "スコア"))。

はい、それは単純な事実だ、あなたも判定条件として、より多くのフィールドを渡すためのより多くのパラメータを取得するためにargmentsを使用することができます。

 

 

 

 

オリジナルリファレンス:https://www.tangshuang.net/2406.html

 


おすすめ

転載: www.cnblogs.com/iamlhr/p/11459653.html