要从对象数组中取出唯一的 ids
并按最早日期返回,可以按照以下步骤进行:
ids
并去重:使用 Set
数据结构来去重。id
对应的最早日期对象。以下是一个示例代码:
// 示例对象数组
const data = [
{ id: 1, date: '2023-01-01' },
{ id: 2, date: '2023-01-02' },
{ id: 1, date: '2023-01-03' },
{ id: 3, date: '2023-01-01' },
{ id: 2, date: '2023-01-04' }
];
// 提取并去重 ids
const uniqueIds = [...new Set(data.map(item => item.id))];
// 按日期排序
data.sort((a, b) => new Date(a.date) - new Date(b.date));
// 获取每个 id 对应的最早日期对象
const result = uniqueIds.map(id => {
const earliestItem = data.find(item => item.id === id);
return earliestItem;
});
console.log(result);
ids
:ids
:map
方法提取所有对象的 id
,然后使用 Set
数据结构去重,最后通过扩展运算符 ...
转换回数组。sort
方法按日期对数组进行排序。排序函数比较两个日期的毫秒值。ids
数组,对于每个 id
,使用 find
方法找到数组中第一个匹配的对象(即最早日期的对象),并将其添加到结果数组中。运行上述代码后,result
数组将包含每个 id
对应的最早日期对象:
[
{ id: 1, date: '2023-01-01' },
{ id: 2, date: '2023-01-02' },
{ id: 3, date: '2023-01-01' }
]
希望这个解答对你有帮助!
领取专属 10元无门槛券
手把手带您无忧上云