迹忆客 专注技术分享

当前位置:主页 > 学无止境 > WEB前端 > JavaScript >

在 JavaScript 中过滤多个条件

作者:迹忆客 最近更新:2024/03/19 浏览次数:

今天的文章教我们使用 JavaScript 中的传统方法和 filter 方法来过滤具有多个条件的数组。


在 JavaScript 中过滤多个条件

数组是一种具有固定数字键和动态值的 JavaScript 对象。JavaScript 提供了几种内置方法来访问和操作这些数组元素。

filter() 方法从原始数组生成一个新数组,其中所有元素都通过了提供的函数实现的条件/测试。

语法:

filter(callbackFn)

filter 方法接受 callbackFn 作为参数。此函数是一个谓词,用于测试数组的每个元素。

返回一个新数组,强制元素保持,否则。

使用三个参数调用回调函数。

  1. element 是数组中处理的当前元素。
  2. index 是数组中正在处理的当前元素的索引。
  3. 调用 filter()array

返回一个新数组,其中包含通过测试的元素。如果没有元素通过测试,将返回一个空数组。

filter() 为数组的每个元素调用一次提供的 callbackFn 函数,并构造一个包含所有值的新数组,其中 callbackFn 返回一个强制为 true 的值。

callbackFn 仅对具有赋值的数组索引调用。对于已删除或从未分配的索引,不会调用它。

未通过 callbackFn 测试的数组元素将被跳过并且不包含在新数组中。在 filter() 的文档中查找更多信息。


使用传统方法

const filter = {
  address: 'India',
  name: 'Aleena'
};
const users = [
  {name: 'John Doe', email: 'johndoe@mail.com', age: 25, address: 'USA'},
  {name: 'Aleena', email: 'aleena@mail.com', age: 35, address: 'India'},
  {name: 'Mark Smith', email: 'marksmith@mail.com', age: 28, address: 'England'}
];

const filteredUsers = users.filter((item) => {
  for (var key in filter) {
    if (item[key] === undefined || item[key] != filter[key]) return false;
  }
  return true;
});

console.log(filteredUsers);

我们已经在上面的示例中描述了一个具有所需属性的 filter 对象。我们在 filter 方法中定义了回调函数来检查指定的数组中是否存在所需的属性。

如果所需的属性不存在,则返回 false;否则,返回 true

filter 对象是动态生成的时,这种方法很有用。如果 filter 对象是静态的,你可以使用下面的 && 条件过滤对象。

尝试在任何支持 JavaScript 的浏览器中运行上述代码片段;它将在下面显示结果。


使用过滤方法

const filteredUsers = users.filter(
    obj => obj.name == filter.name && obj.address == filter.address);
console.log(filteredUsers);

输出:

[{
  address: "India",
  age: 35,
  email: "aleena@mail.com",
  name: "Aleena"
}]

演示

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Do you understand JavaScript closures?

发布时间:2025/02/21 浏览次数:108 分类:JavaScript

The function of a closure can be inferred from its name, suggesting that it is related to the concept of scope. A closure itself is a core concept in JavaScript, and being a core concept, it is naturally also a difficult one.

Do you know about the hidden traps in variables in JavaScript?

发布时间:2025/02/21 浏览次数:178 分类:JavaScript

Whether you're just starting to learn JavaScript or have been using it for a long time, I believe you'll encounter some traps related to JavaScript variable scope. The goal is to identify these traps before you fall into them, in order to av

How much do you know about the Prototype Chain?

发布时间:2025/02/21 浏览次数:150 分类:JavaScript

The prototype chain can be considered one of the core features of JavaScript, and certainly one of its more challenging aspects. If you've learned other object-oriented programming languages, you may find it somewhat confusing when you start

用 jQuery 检查复选框是否被选中

发布时间:2024/03/24 浏览次数:102 分类:JavaScript

在本教程中学习 jQuery 检查复选框是否被选中的所有很酷的方法。我们展示了使用直接 DOM 操作、提取 JavaScript 属性的 jQuery 方法以及使用 jQuery 选择器的不同方法。你还将找到许多有用的

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便