1. ホーム
  2. ジャバスクリプト

[解決済み】オブジェクトの配列を文字列のプロパティ値でソートする

2022-03-18 01:13:27

質問

JavaScriptのオブジェクトの配列があります。

var objs = [ 
    { first_nom: 'Lazslo', last_nom: 'Jamf'     },
    { first_nom: 'Pig',    last_nom: 'Bodine'   },
    { first_nom: 'Pirate', last_nom: 'Prentice' }
];

の値で並べ替えるにはどうしたらよいでしょうか? last_nom をJavaScriptで作成することはできますか?

について知っています。 sort(a,b) しかし、それは文字列と数字に対してのみ機能するようです。この場合 toString() メソッドをオブジェクトに追加できますか?

どのように解決するのですか?

比較関数を自作するのは簡単です。

function compare( a, b ) {
  if ( a.last_nom < b.last_nom ){
    return -1;
  }
  if ( a.last_nom > b.last_nom ){
    return 1;
  }
  return 0;
}

objs.sort( compare );

またはインライン(c/o Marco Demaio)。

objs.sort((a,b) => (a.last_nom > b.last_nom) ? 1 : ((b.last_nom > a.last_nom) ? -1 : 0))