如何在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+' }
]