在 JavaScript 中使用多个条件过滤数组
要使用多个条件过滤数组:
- 使用
Array.filter()
方法迭代数组。 - 使用逻辑 AND
&&
运算符检查多个条件。 Array.filter()
方法将返回所有满足条件的元素。
const people = [
{name: 'Adam', age: 30},
{name: 'Bob', age: 40},
{name: 'Carl', age: 30},
];
const results = people.filter(element => {
// 👇️ using AND (&&) operator
return element.age === 30 && element.name === 'Carl';
});
// 👉️ [ {name: 'Carl', age: 30} ]
console.log(results);
我们传递给 Array.filter()
方法的函数会被数组中的每个元素调用。
如果函数返回真值,则将相应的数组元素添加到结果数组中。
我们使用
&&
(和)运算符检查多个条件。
如果两个条件都满足,该元素将仅添加到过滤后的数组中。
示例中的函数检查当前对象是否具有值为 30 的年龄属性和值为 Carl 的名称属性。
如果回调函数从不返回真值,则 Array.filter()
返回一个空数组。
如果我们需要过滤具有多个条件的数组,而只需满足一个条件,请使用 Array.filter()
方法和逻辑或 ||
操作员。
const people = [
{name: 'Adam', age: 30},
{name: 'Bob', age: 40},
{name: 'Carl', age: 30},
];
const results = people.filter(element => {
// 👇️ using OR (||) operator
return element.age === 40 || element.name === 'Carl';
});
// 👉️ [{name: 'Bob', age: 40}, {name: 'Carl', age: 30}]
console.log(results);
我们使用了逻辑或 ||
运算符检查多个条件。
如果任一条件返回真值,则相应的元素将包含在结果数组中。
在代码示例中,我们检查属性年龄等于 40 的对象或属性名称等于 Carl 的对象。
数组中的 2 个元素至少满足 2 个条件中的一个,因此 Array.filter()
方法返回这两个条件。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。