如何解决如何从一个对象的另一个数组过滤一个对象的数组的多个属性?
我正在尝试解决必须将多个过滤器应用于对象数组的问题。假设我有一个更大的对象数组,其中包含配置属性,该属性又是一个对象。另一方面,我有一个小对象,用户可以选择(基于复选框)进行过滤。我想通过选择多个值来比较与父对象数组组成的对象。
因此,用户在图像中选择了多个值(使用复选框),并根据此值来过滤对象的主要数组。因此,选中复选框后,我得到了 childObject ,我必须在此基础上过滤 parentArray .....请帮助我:
Cells.Find(What:="+??-??-",After:=ActiveCell,LookIn:=xlFormulas,_
LookAt:=xlPart,SearchOrder:=xlByRows,SearchDirection:=xlNext,_
MatchCase:=False,SearchFormat:=False).Activate
Cells.Replace What:="+??-??-",Replacement:="+?? (??) ",LookAt:=xlPart,_
SearchOrder:=xlByRows,MatchCase:=False,SearchFormat:=False,_
ReplaceFormat:=False
解决方法
我不得不在某些时候更新数据结构:
- 您在孩子和父母中有不同的键(大写/小写+驼峰字母/ _写作)
- 父项中缺少
}
。 - 已删除整数中的子引号。缺少
,
。 - 更改准则中的某些值,以便得出结果。
- 以0:,1:,2:,3:,4:的父代获取有效数组。
childArray = {
'bathroom': [2,1],'bedroom': [3,2],'half_bathroom':1,'name':['2BD-2BA','2BD-2BA-1/2BA']
};
parentArray = [
{},{},{
'property1':'____','property2':'_____','configuration':{
bathroom: 2,bedroom: 2,created_at: "2019-03-08 20:52:52",created_by: 264,half_bathroom: 1,id: 26,is_selected: 0,name: "2BD-2BA-1/2BA",name_en: "2BD-2BA-1/2BA",name_es: "2RE-2BA-1/2BA",status: 1,updated_at: "2019-08-23 05:39:44"
},},{}
]
let res = parentArray.filter(elem => Object.entries(childArray).every(([key,val]) => {
let conf = elem.configuration;
if (conf===undefined) return false;
if (typeof(val) === 'object') {
return val.some(crit => crit===conf[key]);
} else {
return val===conf[key];
}
}));
console.log(res);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。