2

私はオブジェクトの配列を持っています。underscore.js を使用して、各オブジェクトをそれぞれの値でソートしたいと考えています。

var myArray = [
    {a:1, b:2, c:2},
    {a:1, b:3, c:2},
    {a:3, b:2, c:1},
    {a:1, b:1, c:4},
    {a:1, b:2, c:4},
];

私はこの方法を試しましたが、うまくいきませんでした...

var myArray = [
    {a:1, b:2, c:2},
    {a:1, c:2, b:3},
    {c:1, b:2, a:3},
    {a:1, b:1, c:4},
    {a:1, b:2, c:4},
];

私はこの方法を使用しようとしています。

_.each(myArray, function(obj) {
    _(obj).sortBy(function(val, key) {
      return val;
    });

});

ここに私のフィドルがありますhttp://jsfiddle.net/rsturim/wNLkX/

4

2 に答える 2

5

オブジェクト内のプロパティを並べ替えることはできません。オブジェクトのプロパティには特定の順序はありません。

プロパティをループ処理したときにプロパティが返される順序は実装に依存し、ブラウザによって異なります。

于 2012-12-18T22:15:00.097 に答える
2

既に述べたように、Javascript ではプロパティを並べ替えることができません。ただし、できることは、並べ替え情報を別の配列に保持することです。

  1. オブジェクトのキーのみを含む配列を作成します。
  2. 元のオブジェクトの値をクロスチェックして、その配列を並べ替えます
  3. ソートされたキー配列を反復処理することにより、ソートされた順序で値にアクセスします
于 2012-12-18T22:27:51.307 に答える