как объединить найти разницу массива и массива json javascript? - PullRequest
0 голосов
/ 12 марта 2019

Любой может помочь мне с разницей слияния два массив и массив json .Вы можете проверить мой код ниже и результат, который я хочу проверить разницу между arr и arr2

Первый массив

let arr=[ '124', '125', '126', '127' ]

Второй массив

let arr2=[{ 
            _id: '125',
            itemId: '125',
            onHand: 10,
            inventoryValue: 70,
            avgCost: 7 
          },
          { 
            _id: '124', 
            itemId: '124', 
            onHand: 10,
            inventoryValue: 50,
            avgCost: 5 
          } 
         ]

Я хочу такой результат

let arr3=['126', '127' ]

Ответы [ 2 ]

2 голосов
/ 12 марта 2019

Просто filter ваш arr в зависимости от того, включает ли arr2 каждое значение как _id, используя some:

let arr = ['124', '125', '126', '127']

let arr2 = [{
    _id: '125',
    itemId: '125',
    onHand: 10,
    inventoryValue: 70,
    avgCost: 7
  },
  {
    _id: '124',
    itemId: '124',
    onHand: 10,
    inventoryValue: 50,
    avgCost: 5
  }
];

let arr3 = arr.filter(e => !arr2.some(({ _id }) => _id == e));

console.log(arr3);
0 голосов
/ 12 марта 2019

Найдите индекс всех идентификаторов arr2 в arr1 и склейте их в виде arr1

let arr = ['124', '125', '126', '127'];

let arr2 = [{
    _id: '125',
    itemId: '125',
    onHand: 10,
    inventoryValue: 70,
    avgCost: 7
  },
  {
    _id: '124',
    itemId: '124',
    onHand: 10,
    inventoryValue: 50,
    avgCost: 5
  }
];
arr2.forEach(function(element) {
      var index = arr.indexOf(element._id);
      if (index > -1) {
        arr.splice(index, 1);
      }
    });
    console.log(arr);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...