我想知道是否可以将一个对象拆分为多个对象。我有一个对象数组,其中包含另一个数组,我想知道是否可以为内部数组中的每个对象拆分这些对象。就像是: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 }]对象总是以这种形式存在,无论是一个对象还是数百个对象。虽然一些对象中可能有更多字段,但只有一个字段带有数组。目前,我正在映射原始数组,然后在b数组内部再次映射以到达那里的每个对象。但是,我不知道从哪里开始,因为该地图的返回对象只是原始数组。我不知道如何拆分b数组并将其与原始数组映射。我想到了 {...orig, b: map()} 但我不认为它适用于每个对象
1 回答
![?](http://img1.sycdn.imooc.com/54586425000103f602200220-100-100.jpg)
收到一只叮咚
TA贡献1821条经验 获得超4个赞
根据您帖子中的描述,您走在正确的轨道上。您必须遍历源对象,并在每次迭代中遍历b数组以提取每个元素,并将其与新对象中的源迭代元素一起推送到目标数组中。
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);
注意:此解决方案假定在源对象的每次迭代中,该b属性都存在并且类型为Array。
添加回答
举报
0/150
提交
取消