1.オブジェクトの配列
私たちは今、オブジェクトのセットを持っている「名前、値が」値に従ってソートされ、これらの目的を達成するために、属性が含まれています。
シリーズ:[
{名: '西安'値:100}、
{名: '瀋陽K'値:120}、
{名: '延安市'値:80}、
{名前:「ダンロップ市'値:90}、
{名前:'楡林」値:130}
]
2.ソート方法
実際には配列オブジェクトのソート方法。
Array.sort(楽しいです)
楽しみが戻り値が0の位置を交換することなく、2つの要素を示す未満である場合に、判定され、ソートがこの関数の戻り値に基づいて実行される機能であり、位置1は、対話型使用を表し、0に等しい実際には<= 0と等価である、を示しています。
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