如何在ES6中过滤对象数组

如何在ES6中过滤对象数组

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

首先让我们尝试理解如何根据JavaScript提供的某些语法创建对象数组。

Javascript对象数组:

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

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

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

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

示例: 在该示例中,我们将在Javascript中创建一个基本数组。

Javascript

<script>
    let people_details = [
      {name: "ABC", age: 18},
      {name: "GeeksforGeeks", age: 30},
      {name: "DEF", age: 50},
    ];
    console.log(people_details);
</script>

输出:

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

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

Javascript filter()方法: ****以下按顺序列出的点将描述我们上面所述的任务:

  • 要从对象数组中筛选出内容,首先我们将使用 filter() 方法,该方法将应用于我们的最外层数组部分。
  • 在该方法内部,我们将传递一个函数,该函数将在数组中的所有对象上执行,并为了访问每个对象,我们将使用任何名称的元素来访问该数组中的对象。
  • 然后基于用户的要求,将筛选出来的数据从对象数组中筛选出来,并在需要时可以显示。

示例 1: 在此示例中,我们将实现一个基本的filter()方法,该方法将筛选对象的年龄。

Javascript

<script>
    let people_details = [
      {name: "ABC", age: 18},
      {name: "GeeksforGeeks", age: 30},
      {name: "DEF", age: 50},
    ];
    console.log(people_details);
     
    let data = people_details.filter(
      element => element.age >= 30);
    console.log(data);
</script>

输出:

[
  { 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

<script>
    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);
</script>

输出:

[
  { 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+' }
]

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程