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

📅  最后修改于: 2022-05-13 01:56:51.519000             🧑  作者: Mango

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

在本文中,我们将尝试了解如何从 ES6 中的对象数组中过滤或分离出某些数据。

让我们首先了解如何通过遵循 JavaScript 提供的某些语法来创建对象数组。

对象数组:

  • 对象数组可帮助任何用户在单个变量中存储多个值。
  • 它实际上存储了一个固定大小的顺序访问集合和相同类型的集合。
  • 通过使用以下语法,我们可以轻松地创建多个对象的数组。

句法:

通过使用以下语法,我们可以轻松创建对象数组。

let array_of_objects = [
{ property-name: value},
{ property-name: value},
.........
]

让我们看一下以下示例,以更好地了解如何创建对象数组。

例子:

Javascript


Javascript


Javascript

  let blood_groups_data = [
    { name: "ABC", age: 19, blood_group: "B+" },
    { name: "DEF", age: 20, blood_group: "AB+" },
    { name: "JOHN", age: 25, blood_group: "A+" },
    { name: "APPLE", age: 45, blood_group: "B+" },
    { name: "PETER", age: 48, blood_group: "AB-" },
    { name: "JAMES", age: 53, blood_group: "B+" },
  ];
  
  console.log(blood_groups_data);
  
  let blood_group_required_data = blood_groups_data.filter(
    (person) => person.age > 18 && person.blood_group === "B+"
  );
  console.log(blood_group_required_data);


上述代码片段的输出如下:

[
  { name: 'ABC', age: 18 },
  { name: 'GeeksforGeeks', age: 30 },
  { name: 'DEF', age: 50 }
]

现在我们已经了解了创建对象数组的概念,现在让我们看看如何根据用户要求从对象数组中过滤掉一些数据。

过滤器()方法:

以下按顺序排列的点将描述我们上面说明的任务-

  • 为了从对象数组中过滤出内容,我们首先将使用filter()方法,我们将在最外层数组部分应用该方法。
  • 在该方法中,我们将传递一个函数,该函数将对数组中存在的所有对象执行,并且要访问这些对象中的每一个,我们将使用任何名称的元素来访问该数组中存在的那些对象.
  • 然后,根据用户的要求,该对象数组中的数据将被过滤掉,并在需要时显示出来。

示例 1:

Javascript


上述代码片段的输出如下:

[
  { name: 'ABC', age: 18 },
  { name: 'GeeksforGeeks', age: 30 },
  { name: 'DEF', age: 50 }
]

[ 
    { name: 'GeeksforGeeks', age: 30 }, 
    { name: 'DEF', age: 50 } 
]

示例 2:

  • 在这个例子中,我们将使用 filter() 方法过滤出用户需要的血型数据作为最终结果。
  • 在那里,我们还将通过提供年龄应大于 18 岁以及所需血型为 B+ 的条件来使用 && 逻辑运算符。

Javascript


  let blood_groups_data = [
    { name: "ABC", age: 19, blood_group: "B+" },
    { name: "DEF", age: 20, blood_group: "AB+" },
    { name: "JOHN", age: 25, blood_group: "A+" },
    { name: "APPLE", age: 45, blood_group: "B+" },
    { name: "PETER", age: 48, blood_group: "AB-" },
    { name: "JAMES", age: 53, blood_group: "B+" },
  ];
  
  console.log(blood_groups_data);
  
  let blood_group_required_data = blood_groups_data.filter(
    (person) => person.age > 18 && person.blood_group === "B+"
  );
  console.log(blood_group_required_data);

上述代码片段的输出如下:

[
  { name: 'ABC', age: 19, blood_group: 'B+' },
  { name: 'DEF', age: 20, blood_group: 'AB+' },
  { name: 'JOHN', age: 25, blood_group: 'A+' },
  { name: 'APPLE', age: 45, blood_group: 'B+' },
  { name: 'PETER', age: 48, blood_group: 'AB-' },
  { name: 'JAMES', age: 53, blood_group: 'B+' }
]

[
  { name: 'ABC', age: 19, blood_group: 'B+' },
  { name: 'APPLE', age: 45, blood_group: 'B+' },
  { name: 'JAMES', age: 53, blood_group: 'B+' }
]