📅  最后修改于: 2023-12-03 15:12:18.970000             🧑  作者: Mango
在 JavaScript 中,我们可以很容易地使用 filter
函数来过滤数组中的对象。这个函数接受一个回调函数作为参数,该回调函数应该返回一个布尔值。为 true
的元素将进入过滤后的新数组。
const newArray = originalArray.filter(callback(item [, index [, array]])[, thisArg]);
newArray
: 新的被过滤后的数组。originalArray
: 原始数组。callback
: 回调函数。接受三个参数:当前遍历的元素、该元素的索引、原始数组。thisArg
: 可选项。当执行回调函数时,用作 this
值的对象。如果我们有一个包含对象的数组,例如:
const users = [
{ name: 'John', age: 25, gender: 'male' },
{ name: 'Jane', age: 30, gender: 'female' },
{ name: 'Bob', age: 20, gender: 'male' },
{ name: 'Mary', age: 28, gender: 'female' },
];
我们想要过滤出年龄大于等于 25 岁的用户,我们可以这样写:
const filteredUsers = users.filter(user => user.age >= 25);
console.log(filteredUsers);
// Output: [{ name: 'John', age: 25, gender: 'male' }, { name: 'Jane', age: 30, gender: 'female' }, { name: 'Mary', age: 28, gender: 'female' }]
我们使用了一个箭头函数作为回调函数,该函数检查每个用户的年龄是否大于等于 25 岁。这个例子返回了一个新数组,其中有三个用户被过滤了。
使用 filter
可以很方便地过滤出我们需要的对象数组。它能够极大地简化我们的编码工作,使我们的代码更加简洁易读。