有两个数组,第二个数组里带有value 值为false 或者true,我要比较这两个数组,找出dmaId和id相同的并且值为TRUE的提出来放在一个新数组里面,例如:
var arr1 = [
{id:1, dmaId:2, name:'aa'},
{id:2, dmaid:3,name:'bb'},
{id:3, dmaid:4, name:'cc'}
];
var arr2 = [
{id:2, name:'aa', value:true},
{id:3, name:'bb', value:false},
{id:4, name:'cc', value:true},
{id:5, name:'dd', value:false},
];
我需要提取的新数组为:
var arr3 = [
{id:2, name:'aa', value:true},
{id:4, name:'cc', value:true},
];
请问可以用什么方法啊?
var s=[]
arr2.map((item,index)=>{
arr1.map((item1,index1)=>{
if(item.id==item1.dmaid&&item.value){
s.push(item)
}
})
})
console.log(s,"s")
如果你这两个数组,长度不是固定的话,需要注意arr1,arr2的长度,双层map循环长度长的必须在外层循环。你也可以用for循环
var result=[]
for(var i=0;i,i<arr2.length;i++){
var obj=arr2[i]
var id=arr2[i].id;
var val=arr2[i].value;
for(var j=0;j<arr1.length;j++){
var dmaid=arr1[j].dmaid;
if(dmaid==id&&val==true){
result.push(obj);
}
}
}
console.log(result)
如果对你有帮助望采纳,谢谢。