可以使用Array.prototype.filter()方法来过滤数组元素,同时根据不同的属性来进行比较。
例如,假设我们有一个对象数组,每个对象都包含一个名字、年龄和性别属性。我们想要过滤出所有女性,并且年龄大于等于20岁的对象,可以这样写:
const people = [
{ name: 'Alice', age: 25, gender: 'female' },
{ name: 'Bob', age: 18, gender: 'male' },
{ name: 'Charlie', age: 30, gender: 'male' },
{ name: 'Diana', age: 22, gender: 'female' },
{ name: 'Eliza', age: 28, gender: 'female' }
];
const filteredPeople = people.filter(person => person.gender === 'female' && person.age >= 20);
console.log(filteredPeople);
// Output: [{ name: 'Alice', age: 25, gender: 'female' }, { name: 'Diana', age: 22, gender: 'female' }, { name: 'Eliza', age: 28, gender: 'female' }]
以上代码会返回一个新数组,该数组中只包含符合条件的元素。我们使用Array.prototype.filter()方法,传入一个回调函数,这个回调函数接收一个对象型参数person,然后用于过滤这个对象是否满足条件。
在回调函数中,我们首先判断该对象的gender属性是否为female,同时年龄是否大于等于20,如果满足这两个条件,我们返回true,将这个元素加入到新数组中。否则,返回false,该元素被过滤掉。
同样的,我们也可以按照年龄或者名字等属性来进行过滤,只需要在回调函数中修改比较的条件即可。
上一篇:按不同时间框架进行分组
下一篇:按不同数字进行线程搜索