этот вопрос может выглядеть аналогично:
но это не так.
У меня есть такой массив.
вывод console.info
serviceListData: Array(4) [ {…}, {…}, {…}, … ]
0: Object { Id: 1939808, count: 1 }
1: Object { Id: 1939808, count: 2 }
2: Object { Id: 1940022, count: 1 }
3: Object { Id: 1940022, count: 2 }
Я хочу удалить объекты с повторяющимся идентификатором, но также хочу сохранить последнее значение. нет гарантии, что последнее значение всегда будет больше, как в примере выше.
это может быть 2,1 2,1 в свойстве count
.
Как я могу это сделать? сохранить последний подсчет и удалить повторяющиеся идентификаторы?
Предполагая, что под «последним значением» вы подразумеваете наивысший индекс в массиве, вы можете reduce
массив и продолжить установку/сброс значения по ключу, а затем взять значения из результирующего объекта.
Что-то вроде:
Object.values(
serviceListData
.reduce((acc, next) => ({...acc, [next.Id]: next }), {})
)
Переберите массив и назначьте ключ/значение объекту с идентификатором в качестве ключа. Затем вы можете взять
Object.values
из них, чтобы вернуть массив.