[英]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.