章鱼老板 2019-12-11 18:16 采纳率: 100%
浏览 304
已采纳

有两个数组,第二个数组里带有value 值为false 或者true,我要比较这两个数组,找出dmaId和id相同的并且值为TRUE的提出来放在一个新数组里面

有两个数组,第二个数组里带有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},
        ];

请问可以用什么方法啊?

  • 写回答

2条回答 默认 最新

  • 崽崽的谷雨 2019-12-12 11:11
    关注
    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)
    

    如果对你有帮助望采纳,谢谢。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能