4

構造 {"name", "count"} のオブジェクトのソートに問題があります:

1. name => "aaa", count => 1
2. name => "bbb", count => 2
3. name => "ccc", count => 3
4. name => "ddd", count => 1
5. name => "eee", count => 1

これを「カウント」で並べ替える必要があります(小さいものから大きいものへ、次に大きいものから小さいものへ)。

私のソート機能:

mass.sort(compareElements);

function compareElements(a, b)
{
 if(a < b) return -1;
 else if(a > b) return 1;
 else return 0;
}

最初の呼び出し (小から大) で 1 つの結果 'res1'
が得られます (大から小)
3 回目の呼び出しで結果 'res2' が得られます (再び小から大) 'res3' !== 'res1' ! が得られます!

res1 と res3 の要素の順序は同じではありません。私はそれらが同じである必要があります。

4

2 に答える 2

2

オブジェクトが次のような場合:

var arrObj = {
   name: "aaa",
   count: 1
};

この関数を使用して比較します。

function compareElements(a, b)
{
  return a.count - b.count;
}
于 2013-08-28T13:30:45.453 に答える