使用isSame函数从momnet的另一个数组元素中删除一个数组元素

时间:2018-12-07 07:09:11

标签: javascript arrays momentjs

我有两个流动的数组,但是我需要使用矩函数从另一个数组元素中删除一个数组元素

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 :(得分:1)

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>