繁体   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