文字列プロパティ値でオブジェクトの配列を並べ替える 質問する

文字列プロパティ値でオブジェクトの配列を並べ替える 質問する

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

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

last_nomJavaScript で値によって並べ替えるにはどうすればよいでしょうか?

については知っていますが、それは文字列と数値でしか機能しないようです。オブジェクトに メソッドsort(a,b)を追加する必要がありますか?toString()

ベストアンサー1

独自の比較関数を書くのは簡単です:

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 );

またはインライン(マルコ・デマイオ宛):

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

または数値用に簡略化(アンドレ・フィゲイレド宛):

objs.sort((a,b) => a.last_nom - b.last_nom); // b - a for reverse sort

おすすめ記事