元のデータ
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 降順ソート
})
- new Map は [key, value] の配列渡しで key をキーにしたMap を生成。
その際に重複したキーは後からきたもので上書き
- Mapオブジェクトに .values で値のみのイテレーターを返す
- Array.from でイテレーターをArrayインスタンスを生成して返す