87,993
社区成员
发帖
与我相关
我的任务
分享tab2:[
{
name: 111',
numbers: 222
},
{
name: 222,
numbers: 666
},
{
name: 333,
numbers: 888
}
]
tab3:{
"fid": 111,
"pigBatchEntry": [
{
"fid": 111,
"parentId": 111,
"pigBatchId": 333
}
],
"fid": 111,
"pigBatchEntry": [
{
"fid": 111,
"parentId": 111,
"pigBatchId": 666
}
],
"fid": 111,
"pigBatchEntry": [
{
"fid": 111,
"parentId": 111,
"pigBatchId": 777
}
]
}
tab2 和 tab3 两组数据,请问我如何通过tab2的numbers属性值,和tab3的pigBatchId属性值,做比较,如果tab2的numbers == tab3的pigBatchId属性值,那就删除tab3的这组数据,请问如何用js实现
function delmatch(taba,cola,tabb,colb){
var cola_s=cola.split('.')
var colb_s=colb.split('.')
var delarray=[]
//console.log(cola_s,colb_s)
taba.forEach(function(a) {
var ai=a;
for(var i=0;i<cola_s.length;i++)ai=ai[cola_s[i]]
//console.log(ai)
for(var j=tabb.length-1;j>=0;j--){
var bi=tabb[j]
for(var k=0;k<colb_s.length;k++)bi=bi[colb_s[k]]
if(ai===bi){
delarray.push(j)
}
}
});
//console.log(delarray)
var doarray=Array.from(new Set(delarray))
doarray.sort()
for(var i=doarray.length-1;i>=0;i--)tabb.splice(doarray[i],1)
}
var tab2=
[
{
name: 111,
numbers: 222
},
{
name: 222,
numbers: 666
},
{
name: 333,
numbers: 888
}
]
var tab3=
[
{
"fid": 111,
"pigBatchEntry": [
{
"fid": 111,
"parentId": 111,
"pigBatchId": 333
}
]
},
{
"fid": 111,
"pigBatchEntry": [
{
"fid": 111,
"parentId": 111,
"pigBatchId": 666
}
]
},
{
"fid": 111,
"pigBatchEntry": [
{
"fid": 111,
"parentId": 111,
"pigBatchId": 777
}
]
}
];
/*
编写人:逍遥的心freeheart1977 2021-9-20
delmatch 从两个表中匹配,删除第二个表中的匹配项
taba 第一张表
cola 第一张表的匹配项。格式如 ..**
tabb 第二张表
colb 第二张表的匹配项。格式如 ..**
本例的调用为:
delmatch(tab2,'numbers',tab3,'pigBatchEntry.0.pigBatchId')
*/
function delmatch(taba,cola,tabb,colb){
var cola_s=cola.split('.')
var colb_s=colb.split('.')
var delarray=[]
//console.log(cola_s,colb_s)
taba.forEach(function(a) {
var ai=a;
for(var i=0;i<cola_s.length;i++)ai=ai[cola_s[i]]
//console.log(ai)
for(var j=tabb.length-1;j>=0;j--){
var bi=tabb[j]
for(var k=0;k<colb_s.length;k++)bi=bi[colb_s[k]]
if(ai===bi){
delarray.push(j)
}
}
});
//console.log(delarray)
var doarray=Array.from(new Set(delarray))
doarray.sort()
for(var i=doarray.length-1;i>=0;i--)tabb.splice(doarray[i],1)
}