Это может быть простой задачей для более опытных программистов. Некоторое время я искал ответы, но почему-то пока не нашел решения. Итак, моя проблема заключается в следующем.
Существует массив из нескольких объектов, например, в моем случае:
const array = [
{Id: 0, Name: 'John', Currency: 'USD', Amount: 25},
{Id: 1, Name: 'Matt', Currency: 'EUR', Amount: 460},
{Id: 2, Name: 'Lisa', Currency: 'YEN', Amount: 60000},
{Id: 3, Name: 'Pete', Currency: 'EUR', Amount: 2400}
]
Как видите, между значениями объекта есть сходство. В моем случае я хотел бы иметь решение, в котором бы объединялись все одинаковые валюты и их значения ::
(например, валюта: 'EUR' (obj1 & obj2), сумма: 460 (obj1) + 2400 (obj2) = 2860)
Итак, конечный результат будет выглядеть примерно так:
const finalarray = [
{Currency: 'USD', Amount: 25},
{Currency: 'EUR', Amount: 2860},
{Currency: 'YEN', Amount: 60000}
]
Лично я не против, если другие ключи объекта не существуют в конечном массиве, если:
1) Объекты массива сравнивают одно из своих значений со всеми другими значениями того же ключа, и
2) Суммы со значением одного и того же ключа объединяются между собой, все они.
Я работаю с проектом Vue.js, поэтому мне нужен язык JavaScript. Что приходит к ответу, тем проще, тем лучше, поскольку я хотел бы сделать код максимально компактным. Но самое главное, что это решает проблему. У меня Computed свойство currencyList () , которое собирается вернуть новый массив.
Заранее спасибо!