@Alisa94

Как получить уникальные свойства двух массивом содержащих по одному объекту?

Доброго времени суток. Есть задача, имеется два массива, в каждой из которых содержится объект. В объектах содержатся свойства элемента. Мне нужно сравнить две эти массивы(или отфильтровать) и в конечном итоге получить два массива, каждый из которых будет содержать по одному объекту, а в этих объектах будут те свойства, которые различаются друг от друга, т.е. уникальные свойства. Например:
const arrFirst = [
  {
    "Category": "One",
    "Value": "26",
  },{
    "Category": "One",
    "Value": "3",
  },{
    "Category": "Two",
    "Value": "250",
  },{
    "Category": "Three",
    "Value": "5"
  },
]

const arrSecond = [
  {
    "Category": "One",
    "Value": "26",
  },{
    "Category": "One",
    "Value": "10",
  },{
    "Category": "Two",
    "Value": "250",
  },{
    "Category": "Three",
    "Value": "563"
  },
]


В конечном итоге должен получить два массива с таким содержанием:

[ // arrFirst
  {
    "Category": "One",
    "Value": "3",
  },{
    "Category": "Three",
    "Value": "5",
  },
]

[ // arrSecond
  {
    "Category": "One",
    "Value": "10",
  },{
    "Category": "Three",
    "Value": "563",
  },
]


Заранее очень благодарен.
  • Вопрос задан
  • 62 просмотра
Решения вопроса 1
RAX7
@RAX7
function diffCats(arr1, arr2) {
  return arr1.filter(obj1 => {
    return !arr2.some(obj2 => obj1.Category === obj2.Category && obj1.Value === obj2.Value);
  });
}

const arrUniq1 = diffCats(arrFirst, arrSecond);
const arrUniq2 = diffCats(arrSecond, arrFirst);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы