一个数组中有5个对象每个对象中有name和age,怎么把age的值大于20的对象添加到另外一个数组
时间: 2024-05-06 16:18:42 浏览: 87
可以使用 Array.prototype.filter() 方法来筛选出 age 大于 20 的对象,然后使用 Array.prototype.map() 方法将筛选出的对象的 name 属性值提取出来并添加到另一个数组中。
以下是示例代码:
```javascript
const arr1 = [
{ name: 'Alice', age: 18 },
{ name: 'Bob', age: 25 },
{ name: 'Charlie', age: 30 },
{ name: 'Dave', age: 22 },
{ name: 'Eve', age: 19 }
];
const arr2 = arr1.filter(obj => obj.age > 20).map(obj => obj.name);
console.log(arr2); // ['Bob', 'Charlie', 'Dave']
```
首先,我们调用 `arr1.filter()` 方法,传入一个回调函数作为参数,该回调函数的作用是筛选出 age 大于 20 的对象。在本例中,回调函数使用箭头函数表达式来定义,它接受一个参数 obj,表示数组中的一个对象。如果该对象的 age 属性大于 20,则返回 true,否则返回 false。这样,`arr1.filter()` 方法就会返回一个新的数组,其中包含 age 大于 20 的对象。
接着,我们调用 `arr.filter().map()` 方法,它可以将前面筛选出的对象的 name 属性值提取出来,并添加到一个新的数组中。在本例中,我们使用箭头函数表达式来定义回调函数,它接受一个参数 obj,表示数组中的一个对象。该回调函数返回 obj 对象的 name 属性值。这样,`arr.filter().map()` 方法就会返回一个新的数组,其中包含 age 大于 20 的对象的 name 属性值。
最后,我们将新数组赋值给变量 `arr2`,并将其打印出来。结果是 `['Bob', 'Charlie', 'Dave']`,这是 age 大于 20 的对象的 name 属性值。
阅读全文