繁体   English   中英

如何将一个包含数组的 object 拆分为多个对象

[英]How to split one object with an array in it to multiple objects

我想知道是否可以将 object 拆分为多个对象。 我有一个对象数组,其中包含另一个数组,我想知道是否可以为内部数组中的每个 object 拆分这些对象。 就像是:

obj1 = [{
  a: 1,
  b: [{c: 2},{d: 3}],
  e: 4
}]

obj2 =[
  {
    a: 1,
    b: [{c: 2}],
    e: 4
  },
  {
    a: 1,
    b: [{d: 3}],
    e: 4
  }
]

object始终是这种形式,不管是一个object还是几百个。 虽然某些对象中可能有更多字段,但只有一个字段带有数组。 目前,我正在映射原始数组,然后在b数组中再次映射以到达其中的每个 object。 但是,我不知道 go 从那里到哪里,因为从 map 返回的 object 将只是原始数组。 我不知道如何将b阵列和 map 与原始阵列分开。 我想到了 {...orig, b: map()} 但我认为它不适用于每个 object

根据您帖子中的描述,您走在正确的轨道上。 您必须遍历源 object,并在每次迭代中循环遍历b数组以提取每个元素,并将其与新 object 中的源迭代元素一起推送到目标数组中。

 var source = [{ a: 1, b: [{ c: 2 }, { d: 3 }], e: 4 }]; // define target as an array var target = []; // loop through source source.forEach((srcElement) => { // loop through `b` array attribute srcElement.b.forEach((bElement) => { // push object into target with source element attributes // and current `b` element wrapped into an array target.push({...srcElement, b: [bElement] }); }); }); console.log(target);

注意:此解决方案假定在您的源 object 的每次迭代中, b属性存在并且是Array类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM