JavaScript 用另一个数组过滤关联数组
在此问题陈述中,我们的任务是借助 Javascript 用另一个数组过滤关联数组。因此,为了完成此任务,我们将使用过滤器方法并包含 Javascript 方法。
什么是关联数组?
关联数组是一种用于存储键值对的数据结构。在此数组中,每个键都与赋予该键的值相关联。此数组中的键是唯一标识符,可用于检索其各自的值。在关联数组中,键没有数字索引。键可以是任何字符串或数值。这些类型的数组可用于我们需要基于非数字键访问数据的情况。
在 Javascript 中,对象是一种关联数组,因为它们存储键值对,其中的键可以是任何字符串或符号。让我们看一个例子
const customer = { name: 'Rishi', age: 25, city: 'Mumbai' };
理解问题陈述
问题陈述是用 Javascript 编写一个函数,通过该函数我们可以借助另一个数组简单地过滤关联数组。因此,我们将有一个关联数组和过滤条件,我们将根据这些条件过滤给定的数组。
给定问题的逻辑
因此,我们将使用一种算法,使用另一个数组过滤数组的元素。首先,我们将使用过滤方法创建一个新数组,其中包含通过创建函数实现的测试的所有元素。因此,测试是当前对象的 name 属性是否包含在过滤条件数组中。然后我们将使用 includes 方法。此方法将用于检查数组的条目中是否包含某个值。因此,我们将检查当前项的 name 属性是否包含在过滤条件数组中。
算法
步骤 1 - 定义一个包含 name 和 age 属性的数据对象。
步骤 2 - 声明一个过滤条件,该条件将作为另一个数组来过滤给定的数据数组。
步骤 3 - 借助过滤方法,我们将过滤给定数组的项,其中包括上述条件数组名称。并将结果存储在已过滤的数组中。
步骤 4 - 过滤全部数据后,我们将控制台显示已过滤的数据。
算法代码
//定义带有姓名和年龄的数据 const data = [ { name: 'Anita', age: 45 }, { name: 'Tanvi', age: 20 }, { name: 'Bittu', age: 32 } ]; //根据特定标准过滤数据 const filterCriteria = ['Anita', 'Bittu']; constfilteredData = data.filter(item => filterCriteria.includes(item.name)); console.log(filteredData);
复杂度
上述方法所花费的时间是 O(n),其中 n 是数据数组中的对象数。空间复杂度也是 O(n),因为我们创建了一个新数组来存储已过滤的对象。
结论
总之,使用过滤器和包含方法可以轻松实现在 Javascript 中使用另一个数组过滤关联数组。对于大多数用例而言,此算法的时间和空间复杂度是合理的。