удалить элементы одного массива из других элементов массива в функции jSusing isSame - PullRequest
0 голосов
/ 07 декабря 2018

у меня есть текущие два массива, но мне нужно удалить один элемент массива из других элементов массива, используя функцию момента

let A = [moment('2019-01-17'),moment('2019-01-19')];
let B = [moment('2019-01-17')];

diff = A.filter(x => {
  B.forEach(xx => {
    if (!x.isSame(xx)) {
      return true;
    }
  });
});

ожидаемый результат diff = [moment('2019-01-19')] мой рабочий ресурс plunker

1 Ответ

0 голосов
/ 07 декабря 2018

Обратный вызов filter() должен просто возвращать логическое значение, указывающее, должен ли этот элемент быть включен.Вы ничего не возвращаете от обратного вызова.Вы можете сделать логическое значение с some(), которое будет выглядеть в массиве B и увидеть, что условие соответствует всем элементам.При этом используется !some(), который в основном говорит: «Это не тот случай, когда некоторые элементы совпадают».Вы также можете использовать `every () с противоположным условием.

let A = [moment('2019-01-17'),moment('2019-01-19')];
let B = [moment('2019-01-17')];

diff = A.filter(x => !B.some(xx => x.isSame(xx)));

console.log(diff)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
...