【发布时间】:2021-03-03 01:41:12
【问题描述】:
我目前正在根据一组值过滤一组对象。我的对象数组如下所示,这个数组定义为 arr1:
[
{
"filters": {
"counties": ["Philadelphia", "Bucks"],
"gender": ["Male"],
"rate": ["$300 or less"],
"experience": ["10 or fewer"],
"rating": ["10 or fewer"]
}
},
{
"filters": {
"counties": ["Montgomery", "Chester"],
"gender": ["Male"],
"rate": ["$301-350"],
"experience": ["11-20"],
"rating": ["31+"]
}
},
{
"filters": {
"counties": ["Philadelphia"],
"gender": ["Male"],
"rate": ["$301-350"],
"experience": ["11-20"],
"rating": ["31+"]
}
}
]
我将对象数组与如下所示的数据结构进行比较,该对象定义为 obj:
{
"counties": ["Philadelphia", "Bucks"],
"gender": ["Male"],
"experience": ["10 or fewer"],
"rating": ["10 or fewer"]
}
我可以通过执行以下操作来过滤县:
arr1.map((item) => {
item.filters.counties.filter((i) => {
if (obj.counties.includes(i)) {
console.log(item)
return item
}
})
})
控制台日志成功返回 arr1 中包含费城的所有对象,但我没有正确返回。我想知道,一个接一个地堆叠这些过滤器的最佳方式。我目前有些不知所措。我创建了一个用于调试的代码框https://codesandbox.io/s/ecstatic-hodgkin-pwlyg?file=/src/index.js
所需的结果:返回 arr1 中与与之比较的数组映射匹配的所有对象
【问题讨论】:
-
您是要匹配任何个字段还是所有个字段?
-
对不起,你能解释一下区别,以便我给你一个可靠的答案
-
如果它与性别不匹配,则不应包含在内,对于任何混淆,我深表歉意
-
所以基本上一个标准匹配,如果它和对象之间有任何重叠?我会重新审视我的答案。
-
是的,我相信这是我想要实现的行为
标签: javascript reactjs