У меня есть фрагмент Javascript для хранения только уникальных элементов в массиве таких объектов: -
const array = [
{id: 3, name: 'Central Microscopy', fiscalYear: 2018},
{id: 5, name: 'Crystallography Facility', fiscalYear: 2018},
{id: 3, name: 'Central Microscopy', fiscalYear: 2017},
{id: 5, name: 'Crystallography Facility', fiscalYear: 2017},
{id: 3, name: 'Central Microscopy', fiscalYear: 2019},
];
const result = [];
const map = new Map();
for (const item of array) {
if (!map.has(item.id) ) {
map.set(item.id, true); // set any value to Map
result.push({
id: item.id,
name: item.name,
fiscalYear: item.fiscalYear
});
}
}
console.log(result);
для этого результата
[
{ id: 3, name: 'Central Microscopy', fiscalYear: 2018 },
{ id: 5, name: 'Crystallography Facility', fiscalYear: 2018 }
]
Теперь я хочу иметь уникальные предметы и иметь те предметы, финансовые годы которых больше, чем существующие. Например: - Для одного и того же входа результат должен быть следующим: - Мне нужен код в javascript или машинописный текст (языковое ограничение)
[
{ id: 3, name: 'Central Microscopy', fiscalYear: 2019},
{ id: 5, name: 'Crystallography Facility', fiscalYear: 2018 }
]
Требуется оптимальное решение, даже если данные большие