この記事では、JSがarray.prototype.sort()を使用して配列オブジェクトをソートする方法について説明します。参照のためにそれを共有してください。特定の分析は次のとおりです。
配列オブジェクトのソートについて話すときは、まずarray.prototype.sort()を簡単に理解しましょう。ソートメソッドは、パラメーター - 関数を受け入れます。この関数は、比較される2つの要素の2つのパラメーターをそれぞれ提供します。要素が文字列の場合、Unicodeコードを介して比較されます。数の場合、値のサイズが比較されます。比較された関数で1が返された場合、2つの要素が交換され、0と-1は交換されません。例を見てみましょう:
コードコピーは次のとおりです。vararr = [3、5、2、1];
//小規模から大規模への並べ替え
arr.sort(function(a、b){
a> bを返しますか? 1:-1;
});
//結果は次のとおりです。[1、2、3、5]
それで、私たちのトピックに戻って、配列オブジェクトをソートした場合、どのように書く必要がありますか?実際、原則は上記と同じです。
次のようにコードをコピーします:var arr = [
{a:2、b:3.2}、
{a:3、b:1.2}、
{a:4、b:2.2}、
{a:6、b:1.2}、
{A:5、B:3.2}
]
///属性Bで小規模から大規模にソートされました
arr.sort(function(x、y){
xb> ybを返しますか? 1:-1;
});
xとyはarrの要素、つまりオブジェクトであるため、2つのオブジェクトのプロパティを直接比較できます。
上記の例では、最小の要素には重複があります。要件が次の場合:最初にB属性に従って小さいものから大規模に並べ替え、最小の重複がある場合は、A属性によってソートするには、どのように書く必要がありますか?
ソートするときは、b属性で最初に並べ替えます。 XBがYBより大きい場合は、XをYの右に移動します。 XBがYBに等しい場合は、XAとYAと比較してください。したがって、コードは次のとおりです。
次のようにコードをコピーします:arr.sort(function(x、y){
if(xb> yb){
返品1;
} else if(xb === yb){
xa> yaを返しますか? 1:-1;
} else if(xb <yb){
return -1;
}
})
この記事がみんなのJavaScriptプログラミングに役立つことを願っています。