[英]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 object
推secondobj'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.