js数组里取出相同的字段组成一个新数组
时间: 2024-09-23 10:04:48 浏览: 61
在JavaScript中,如果你想从一个数组中提取出所有具有相同特定字段的对象,并将这些对象的该字段构成一个新的数组,你可以使用`map()`、`filter()` 和 `reduce()` 方法组合起来。这里是一个简单的示例:
```javascript
function extractFieldFromArray(arr, field) {
// 使用filter()筛选出包含指定字段的对象
const objectsWithField = arr.filter(obj => obj.hasOwnProperty(field));
// 使用map()获取每个对象的指定字段值
const values = objectsWithField.map(obj => obj[field]);
// 返回新的数组
return values;
}
// 示例数据
const originalArray = [
{ name: 'John', age: 25 },
{ name: 'Jane', age: 30 },
{ name: 'John', city: 'New York' }, // 同名的 John
{ name: 'Tom' }
];
// 提取 'name' 字段
const names = extractFieldFromArray(originalArray, 'name');
console.log(names); // 输出: ['John', 'Jane', 'John']
```
在这个例子中,我们首先过滤出所有包含`field`属性的对象,然后对这些对象应用`map()`函数,只取它们的`field`字段值。最后返回这个新的数组。
阅读全文