JavaScript - 使用数组过滤数组

javascriptweb developmentfront end technologyobject oriented programming更新于 2025/1/16 19:56:17

在给定的问题陈述中,我们被要求借助 javascript 功能使用另一个数组过滤一个数组。在 Javascript 中,我们有一个名为 filter() 的内置函数,用于过滤数组中的项目。我们可以借助此函数解决这个问题。

什么是 Javascript 中的数组过滤?

让我们了解数组中对象的操作。

术语"过滤"意味着我们必须根据某些条件过滤数组。在 Javascript 中,数组过滤是通过在输入数组中包含或排除项目来创建新数组的过程。这是根据某些条件完成的。JavaScript 中存在一种过滤方法,我们可以通过它过滤数组数据。

此方法创建一个新数组,其中包含所有符合给定条件或函数的元素。如果项目包含在新数组中,则函数应返回 true,否则不包含在内。结果数组仅保留通过过滤方法传递了给定条件的项目。

我们将在本文中看到一些最有用的函数的用法。

上述问题的逻辑

借助 Javascript 的预定义函数过滤给定数组的最简单方法。让我们了解给定问题的逻辑。

为了过滤给定的输入数组,我们需要两个包含一些相同元素的数组。现在我们需要创建一个新数组,其中包含两个数组中不匹配的过滤值。所以请记住这个问题,我们将继续进行。

为了满足这一要求,我们需要一个过滤方法。Array.filter 方法主要用于根据某些条件执行数组过滤。此方法创建一个新数组,其中包含所有符合该条件的项目并生成新项目。如果条件为真,则返回新数组中的新元素,否则不返回。因此,生成的数组将包含使用输入数组创建的新元素。

算法

步骤 1: 声明两个名为 firstArray 和 secondArray 的数组,其中包含一些相同的值。

步骤 2: 按照第一步声明并初始化一个名为filteredArray的附加数组。过滤器函数按照逻辑中的定义过滤数组。在我们的示例中,如果项目存在于 firstArray 和 secondArray 中,我们将过滤项目,然后将其添加到已过滤数组中。

步骤 3:第二步完成后,我们将显示已过滤项目数组的结果。

示例

//定义两个具有相同属性的数组
const firstArray = ['apple', 'banana', 'orange', 'pineapple'];
const secondArray = ['banana', 'pineapple'];

//过滤数组
constfilteredArray = firstArray.filter((item) => secondArray.includes(item));

console.log(filteredArray);

输出

[ 'banana', 'pineapple' ]

在上面的例子中,我们定义了两个数组:firstArray 和 secondArray。我们需要过滤掉 array1 中未包含在 array2 中的项。因此,我们使用 filter() 方法生成一个新数组,其中包含通过给定条件的所有元素。因此,结果数组将显示 secondArray 中存在的项。

示例

//定义年龄数组
const ages = [32, 33, 16, 40];

//创建一个函数来检查成人年龄
function checkAdult(age) {
return age >= 18;
}

//过滤数组
const filterAge = ages.filter(checkAdult);
console.log(filterAge);

输出

[ 32, 33, 40 ]

复杂度

正如我们所见,数组的过滤技术。完成此代码执行所需的时间为 O(n)。'n' 表示 firstArray 的大小,因为 filter 方法会遍历数组中的所有元素。获取结果所需的空间为 O(m),其中 m 是名为filteredArray的新数组的长度。因为会创建一个新数组来保存过滤后的项目。

结论

在此代码中,我们借助 javascript 的 filter 函数实现了不同的过滤技术。我们还发现,这些方法在处理较大的数组时效率不高。最后计算出时间复杂度为 O(n),其中 n 是输入数组的大小。空间复杂度为O(m)。


相关文章


有用资源