📅  最后修改于: 2023-12-03 14:42:38.885000             🧑  作者: Mango
在 JavaScript 中,我们可以使用 filter()
函数来过滤数组中的元素。但是,如果我们有另一个数组作为过滤条件,我们该怎么办呢?这时候,我们可以使用 includes()
函数来判断元素是否存在于另一个数组中。
下面是一个例子:
const arr1 = [1, 2, 3, 4, 5];
const arr2 = [2, 4];
const filteredArr = arr1.filter(item => arr2.includes(item));
console.log(filteredArr); // [2, 4]
在上面的代码中,arr1
是要被过滤的数组,arr2
是另一个数组作为过滤条件。我们使用了 filter()
函数来遍历 arr1
,然后使用 includes()
函数判断元素是否存在于 arr2
中。如果存在,则留下。
最终,我们得到了一个新的数组 filteredArr
,其中只包含 arr1
中存在于 arr2
中的元素。
为了更好地理解上面的代码,我们可以把它改写成普通的 for
循环:
const arr1 = [1, 2, 3, 4, 5];
const arr2 = [2, 4];
const filteredArr = [];
for (let i = 0; i < arr1.length; i++) {
const item = arr1[i];
if (arr2.includes(item)) {
filteredArr.push(item);
}
}
console.log(filteredArr); // [2, 4]
这段代码的作用与上面的代码是完全一样的,只不过使用了普通的 for
循环来实现。
总之,JavaScript 通过另一个数组过滤数组,我们可以使用 filter()
函数和 includes()
函数来实现。这是处理数组过滤的一种常见方式,可以帮助我们更快地获取想要的数据。