簡體   English   中英

如何比較字段並將字段推送到對象中的子數組

[英]How to compare and push field to sub array in object

我有一個包含名稱和ID的對象。 第二個對象有一些字段,第一個對象有id字段。

例如:

FirstObj = [{
  _id: '48765465f42424',
  Name : 'Sample'
},{
  _id: '48765465f654654',
  Name : 'Sample1'
}]
secondObj = [{
  Field1 : 5464,
  subarray : [{
        Field2 : 14654,
        Field3 : { IsActive : true,
                     FirstObjid : '48765465f42424'
                  },
        Field4 : { IsActive : true,
                     FirstObjid : '48765465f654654'
                  }
            }]
    },
    {
  Field1 : 2145,
  subarray : [{
        Field2 : 544644,
        Field3 : { IsActive : true,
                     FirstObjid : '48765465f654654'
                  },
        Field4 : { IsActive : true,
                     FirstObjid : '48765465f42424'
                  },
        }]
    }]

現在,我需要比較兩者,並將該名稱從first objectsecondobj's subobj FirstObjid字段旁邊的FirstObjid

預期輸出為:

 secondObj = [{
  Field1 : 5464,
  subarray : [{
        Field2 : 14654,
        Field3 : { IsActive : true,
                     FirstObjid : '48765465f42424',
                    Name : 'Sample'
                  },
        Field4 : { IsActive : true,
                     FirstObjid : '48765465f654654',
                    Name : 'Sample1'
                  }
            }]
    },
    {
  Field1 : 2145,
  subarray : [{
        Field2 : 544644,
        Field3 : { IsActive : true,
                     FirstObjid : '48765465f654654',
                     Name : 'Sample1'
                  },
        Field4 : { IsActive : true,
                     FirstObjid : '48765465f42424',
                    Name : 'Sample'
                  },
        }]
    }]

我該如何實現。

嘗試這個

secondObj.subarray.forEach(function(item){
if(item.FirstObjid==FirstObj._id)
    item.Name = FirstObj.Name
})

使用map功能並像這樣比較對象ID

 var secondObj = [{ Field1 : 5464, subarray : [{ Field2 : 14654, Field3 : 'sfsadf', FirstObjid : '48765465f42424' }] }, { Field1 : 2145, subarray : [{ Field2 : 544644, Field3 : 'awrfsa', FirstObjid : '48765465f654654' }] }] var FirstObj = [{ _id: '48765465f42424', Name : 'Sample' },{ _id: '48765465f654654', Name : 'Sample1' }] secondObj.subarray = secondObj.map(o => o.subarray.map(k=> FirstObj.map(l=> { if(l._id == k.FirstObjid){ k.Name = l.Name } return o; }))) console.log(secondObj) 
 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM