章鱼老板 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 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?