Используя loda sh, я хочу найти все элементы между двумя массивами, которые различны, в основном противоположны или обратны _. Intersection [with | by] . Конечно, я рассмотрел _. Разность [с | на] , но это не обратная версия _.intersection, поскольку он сравнивает только первый массив со вторым, а не сравнивает их друг с другом. Самое близкое, что я смог получить, - это очень громоздко, что побудило меня спросить здесь, не хватает ли мне более эффективного и / или элегантного варианта. Меня интересуют только решения на основе loda sh.
Вот самое близкое, что я могу придумать, чтобы получить уникальный массив значений, которые различны для обоих массивов. Меня интересуют значения со свойствами id
, которые отсутствуют как в массивах, так и в значениях с совпадающими свойствами id
, но отличаются v
свойствами.
const n = [{id: 0, v: 9.7}, {id: 1, v: 1.7}, {id: 3, v: 2.6}, {id: 4, v: 1.89}]
const o = [{id: 1, v: 1.7}, {id: 3, v: 3.6}, {id: 7, v: 0.89}, {id: 4, v: 1.89}]
_.uniqBy(_.concat(
_.differenceWith(n, o, _.isEqual), _.differenceWith(o, n, _.isEqual)), 'id')
Этот код выдаст:
[{id: 0, v: 9.7}, {id: 3, v: 2.6}, {id: 7, v: 0.89}]