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