Я искал, но не нашел именно того трюка, который мне нужен.
Я пытаюсь сравнить 2 массива объектов с одинаковыми ключами и обновить arr1, если значения в arr2 отличаются. Здесь - кодовая ручка, с которой можно играть.
let arr1 = [{val1: "dog", val2: "friendly"},{val1: "cat", val2: "fluffy"}]
let arr2 = [{val1: "cat", val2: "evil"},{val1: "mouse", val2: "tiny"},{val1: "hippo", val2: "big"}]
Ожидаемым результатом функции должна быть корректировка объекта, включая val1: "cat" в arr1:
{val1: "cat", val2: "fluffy"} -----> {val1: "cat", val2: "evil"}
и обновленный arr1 должен возвращаться так:
{val1: "dog", val2: "friendly"}, { val1: "cat", val2: "evil"}
Трюк в том, что код также должен работать в обоих направлениях. Так, например, если в arr1 есть {val1: "big", val2: "puma"}, он изменится на {val1: "big", val2: "hippo"}, заменив "puma", поскольку значение "big" связан с "гиппопотамом" в arr2.
Есть идеи, как этого добиться? Спасибо!