现在有一个对象数组arr1,arr1中的对象结构包含了很多不需要的key,现在需要根据keyArr字符串数组过滤arr1,怎么做
时间: 2024-03-11 13:47:13 浏览: 34
一个过滤器,用于将您的对象转换为可以轻松过滤和排序 的数组_JavaScript_代码_相关文件_下载
可以使用 JavaScript 中的 map 方法和 reduce 方法来过滤对象数组。具体实现如下:
```javascript
const arr1 = [
{ id: 1, name: 'Alice', age: 20 },
{ id: 2, name: 'Bob', age: 25 },
{ id: 3, name: 'Charlie', age: 30 }
];
const keyArr = ['id', 'name'];
const filteredArr1 = arr1.map(obj =>
keyArr.reduce((acc, key) => ({ ...acc, [key]: obj[key] }), {})
);
console.log(filteredArr1);
// Output: [{ id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }, { id: 3, name: 'Charlie' }]
```
以上代码首先定义了一个对象数组 `arr1` 和一个字符串数组 `keyArr`,`keyArr` 中包含了需要保留的 key。然后,使用 `map` 方法遍历 `arr1`,对于每个对象,使用 `reduce` 方法过滤出需要保留的 key,返回一个新的对象。最后,得到一个新的对象数组 `filteredArr1`,其中每个对象只包含了 `keyArr` 中指定的 key。
阅读全文