【发布时间】:2023-01-19 23:05:42
【问题描述】:
Input :
First Array
const input1 = [
{
'name':"name1",
'email':"emai2@email.com",
'age':10
},
{
'name':"name2",
'email':"emai2@email.com",
'age':20
}
];
Second Array
const input2 =[
{
'fullname':"name1",
'emailaddress':"emai2@email.com",
'age':10
},
{
'name':"name2",
'email':"emai2@email.com",
'age':20
}
];
const filter1 = ['name', 'email'];
const filter2 = ['fullname','emailaddress'];
const matchArray = [];
const newArray = [];
let filterInput ='';
function filterRecord(input1, input2, filter1, filter2) {
filter1.forEach((data, index) =>{
if((filter1.lenght)-1 ==index)){
filterInput +='obj['+data+']==='+input2[index]+']';
}
else {
if((filter1.lenght)-1 ==index)){
filterInput +='obj['+data+']==='+input2[index]+'] && ';
}
});
input1.forEach((data, index) =>{
const isExist = input2.find((obj) =>filterInput);
if(isExist){
matchArray.push(isexist);
}
else {
newArray.push(isexist);
}
});
return {matchArray, newArray}
}
过滤器记录(输入 1、输入 2、过滤器 1、过滤器 2)
所以我需要检查两个数组的键是动态的。上面的代码没有按预期工作。匹配记录应该压入matchArray,不匹配的记录应该压入newArray。但是目前我在 find 中传递的过滤器输入不起作用
【问题讨论】:
标签: javascript node.js javascript-objects