Разница между массивами объектов по ключу underscore?

Привет. Что-то не получается получить разницу между 2 массивами объектов по ключевому полю.
Есть 2 массива объектов.
1:
[
	{
        "name": "name1",
        "prices": [
            {
                "count": 15164,
                "price": 0.34,
            }
        ],
    },
    {
        "name": "name2",
        "prices": [
            {
                "count": 26606,
                "price": 0.33,
            },
			{
                "count": 266,
                "price": 0.23,
            }
        ],
    },
    {
        "name": "name3",
        "prices": [
            {
                "count": 0,
                "price": 0.45,
            }
        ]
    },
	{
        "name": "name4",
        "prices": [
            {
                "count": 1,
                "price": 0.45,
            }
        ]
    }
]

и второй:
[
	{
        "name": "name1",
        "prices": [
            {
                "count": 26019,
                "price": 1.13,
            }
        ]
    },
    {
        "name": "name2"
    },
    {
        "name": "name3",
        "prices": [
            {
                "count": 3198,
                "price": 1.05,
            },
            {
                "count": 3513,
                "price": 0.94,
            }
        ]
    }
]


И нужно из 1 масиива объектов вычесть второй, если поле name совпадает. Т.е по вычетанию массивов мы должны получить массив из объекта, имени которого не было во 2 массиве:
[
	{
        "name": "name4",
        "prices": [
            {
                "count": 1,
                "price": 0.45,
            }
        ]
    }
]


Я уже пробовал и _difference и _where, _findWhere, но там на вход подаются массивы и не возможно указать ключ. Надо сделать через цикл и _find (или через filter?), вроде как, но условие не могу правильно составить.
Спасибо.
  • Вопрос задан
  • 393 просмотра
Решения вопроса 1
@vlad00777 Автор вопроса
Сделал на lodash.
_.differenceBy(arr1, arr2, 'name');
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы