📜  如何在 ES6 中过滤对象数组?(1)

📅  最后修改于: 2023-12-03 15:24:09.975000             🧑  作者: Mango

如何在 ES6 中过滤对象数组?

在 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.ageitem.occupation

总的来说,在 ES6 中过滤对象数组非常简单,只需使用 filter() 方法和一个回调函数。我们可以使用许多不同的条件和逻辑来过滤对象,这使得它非常灵活和功能强大。