如何从父数组中过滤掉子数组?

时间:2017-07-10 20:59:20

标签: javascript arrays loops for-loop element

我有一个数组a = [1,2,3,4,5]和一个数组b = [1,3],其中包含a的一些元素。所以它是一种a的子数组。

在下面的for循环中,我可以使用b的元素来实现#34;做些东西"。现在,我如何在同一循环中与不属于a的{​​{1}}元素进行交互?这意味着来自b的{​​{1}}?如何过滤掉它们?

2, 4 and 5

非常感谢"

3 个答案:

答案 0 :(得分:4)

您可以使用filter()功能与includes()功能结合来过滤列表:

const diff = a.filter(i => !b.includes(i));

diff将仅包含a中不属于b的元素。

这在阵列之间称为差异。还有很多库将包含某种diff数组函数。

答案 1 :(得分:2)

您可以在filter数组上使用a来获取未包含的新元素列表:

a.filter(item => !b.includes(item)).forEach(function(item) {
    console.log(item);
});

答案 2 :(得分:2)

您正在寻找:a.filter((element) => !b.includes(element))

示例

const a = [1,2,3,4,5];
const b = [1,3]

const elements_in_a_not_in_b = a.filter((element) => !b.includes(element))

console.log(
  elements_in_a_not_in_b
)