一个对象数组按照另一个对象数组的指定字段过滤 js
时间: 2024-11-15 10:29:21 浏览: 1
Faltu用Mongo风格进行搜索排序过滤和限定一个对象数组
在JavaScript中,如果你有一个对象数组并想要基于另一个对象数组中的某个字段值进行过滤,你可以使用`Array.prototype.filter()`方法结合`map()`方法来完成这个任务。假设我们有两个对象数组:
```javascript
// 原始对象数组 (sourceArray)
const sourceArray = [
{ id: 1, name: 'A', category: 'cat' },
{ id: 2, name: 'B', category: 'dog' },
{ id: 3, name: 'C', category: 'cat' },
{ id: 4, name: 'D', category: 'bird' }
];
// 过滤依据的对象数组 (filterCriteriaArray)
const filterCriteriaArray = [{ category: 'cat' }, { category: 'dog' }];
```
你可以这样操作来只保留符合`filterCriteriaArray`中类别字段的对象:
```javascript
// 使用filter和map函数进行过滤
const filteredArray = sourceArray.map(criteriaObj => {
return sourceArray.find(obj => obj.category === criteriaObj.category);
});
console.log(filteredArray); // 输出:[ { id: 1, name: 'A', category: 'cat' }, { id: 2, name: 'B', category: 'dog' } ]
```
这将返回一个新的数组,其中包含与`filterCriteriaArray`中的每个类别匹配的元素。
阅读全文