Как удалить дубликаты и вычислить разницу между двумя массивами? - PullRequest
0 голосов
/ 15 октября 2019

Я могу получить значения одинаковых значений внутри вложенной карты. Но как получить разницу между ними?

Я пробовал map, filter, но я не могу понять, как это сделать правильно для удаления дублирующихся значений.

const responseData = [
  { value: "red", label: "Red" },
  { value: "blue", label: "Blue" }
];
const fixedColors = [
  { value: "red", label: "Red" },
  { value: "blue", label: "Blue" },
  { value: "yellow", label: "Yellow" },
  { value: "orange", label: "Orange" }
];

responseData.map(opt => {
  fixedColors.findIndex(obj => {
    if (obj.value === opt.value) {
      testArray.push(opt);
    } else {
      testArray2.push(obj);
    }
  });
});

Я могу получить одинаковые значения в обоих массивах, я не могу получить разницу. Я не понимаю, как правильно выполнить его с помощью ES6.

1 Ответ

1 голос
/ 15 октября 2019

filter Ваш ответ включает только значения, еще не включенные в fixedColors и concat результат с fixedColors

const responseData = [{value: "purple", label:"Purple is new"}, {value: "blue", label:"Blue"}]

const fixedColors = [{value: "red", label:"Red"}, {value: "blue", label:"Blue"},{value: "yellow", label:"Yellow"}, {value: "orange", label:"Orange"}]

const existingValues = fixedColors.map(x => x.value)
const valuesToAdd = responseData.filter(x => !existingValues.includes(x.value))

const newValues = fixedColors.concat(valuesToAdd)

console.log(newValues)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...