Самый быстрый и простой способ:
val m1 = Map(1 -> 1.0, 3 -> 3.0, 5 -> 5.2)
val m2 = Map(0 -> 10.0, 3 -> 3.0)
val merged = (m2 foldLeft m1) (
(acc, v) => acc + (v._1 -> (v._2 + acc.getOrElse(v._1, 0.0)))
)
Таким образом, каждый элемент сразу добавляется к карте.
Второй способ ++
:
map1 ++ map2.map { case (k,v) => k -> (v + map1.getOrElse(k,0)) }
В отличие от первого способа. Во втором случае для каждого элемента во второй карте будет создан и объединен новый список с предыдущей картой.
Выражение case
неявно создает новый список с использованием метода unapply
.
Вы можете полностью удалить файл package-lock.json
(а также node_modules
). Они будут восстановлены, когда вы запустите npm install
.