オブジェクトの配列で、オブジェクトのキーの重複削除 & ソート

元のデータ

const tgtObjArray = [
  {
    timestamp: '1',
    label: 'A1-1',
  },
  {
    timestamp: '1',
    label: 'A1-2',
  },
  {
    timestamp: '2',
    label: 'A2-1',
  },
  {
    timestamp: '1',
    label: 'A1-3',
  },
  {
    timestamp: '0',
    label: 'A0',
  },
  {
    timestamp: '2',
    label: 'A2-2',
  },
]

timestamp の 重複を削除して、timestamp で降順ソート

const result = Array.from(
  new Map(tgtObjArray.map((obj) => [obj.timestamp, obj])).values()
).sort(function (a, b) {
  return a.timestamp < b.timestamp ? 1 : -1 //timestamp 降順ソート
})
  1. new Map は [key, value] の配列渡しで key をキーにしたMap を生成。
    その際に重複したキーは後からきたもので上書き
  2. Mapオブジェクトに .values で値のみのイテレーターを返す
  3. Array.from でイテレーターをArrayインスタンスを生成して返す