📅  最后修改于: 2023-12-03 15:24:09.975000             🧑  作者: Mango
在 ES6 中,我们可以使用 Array.prototype.filter()
方法来过滤数组。该方法将返回一个新的数组,其中只包含符合条件的元素。
要过滤一个对象数组,我们需要为 filter()
方法提供一个回调函数。该回调函数将传入当前元素、元素的索引和原始数组。
以下是一个简单的例子,过滤一个包含不同年龄的人的数组,并仅返回18岁以下的人:
const people = [
{ name: 'John', age: 20 },
{ name: 'Jane', age: 16 },
{ name: 'Bob', age: 25 },
{ name: 'Mary', age: 17 }
]
const filteredPeople = people.filter(person => person.age < 18)
console.log(filteredPeople)
// 输出: [{ name: 'Jane', age: 16 }, { name: 'Mary', age: 17 }]
我们可以看到,在回调函数中,我们检查每个人的年龄是否小于18岁。如果是,该人将被包含在返回的数组中。
在回调函数中,我们还可以使用其他条件和逻辑来过滤数组中的对象。这取决于我们想要实现的功能和要过滤的对象属性。
此外,我们还可以使用箭头函数和扩展运算符来更简洁地过滤对象数组。以下是一个示例,过滤一组对象数组,只返回带有“name”属性的对象:
const items = [
{ name: 'John' },
{ age: 20 },
{ name: 'Jane', occupation: 'Designer' },
{ height: '6ft' }
]
const filteredItems = items.filter(item => item.name)
console.log(filteredItems)
// 输出: [{ name: 'John' }, { name: 'Jane', occupation: 'Designer' }]
在这个例子中,我们使用箭头函数和对象的“name”属性来过滤数组。我们还可以将其他属性添加到回调函数中,例如 item.age
或 item.occupation
。
总的来说,在 ES6 中过滤对象数组非常简单,只需使用 filter()
方法和一个回调函数。我们可以使用许多不同的条件和逻辑来过滤对象,这使得它非常灵活和功能强大。