Javascript 在循环中合并对象
我有一个对象数组:Javascript 在循环中合并对象,javascript,arrays,loops,object,merge,Javascript,Arrays,Loops,Object,Merge,我有一个对象数组: [ [ {a: 'FER', b: 'MEN', c: 'TUM'}, {a: 'RIS ', b: 'US', c: 'SOU'}, {a: 'CON', b: 'SEC', c: 'TETUR'} ], [ {d: 'LIGU'}, {d: 'GU'}, {d: 'LA'} ], [ {e: 'UL', f: 'LAM'}, {e: 'COR', f: 'PER'}, {e:
[
[
{a: 'FER', b: 'MEN', c: 'TUM'},
{a: 'RIS ', b: 'US', c: 'SOU'},
{a: 'CON', b: 'SEC', c: 'TETUR'}
],
[
{d: 'LIGU'},
{d: 'GU'},
{d: 'LA'}
],
[
{e: 'UL', f: 'LAM'},
{e: 'COR', f: 'PER'},
{e: 'EGE', f: 'STAS'}
]
]
我希望以更一般的方式获得以下内容(实际上,我有一个包含21个数组的数组,每个数组中有205个对象):
我尝试了很多事情(对象分配、减少等),但我的头脑现在一团糟,我一直在思考如何在循环中合并对象。
非常感谢您的帮助 使用和:
const数据=[
[
{a'FER',b'MEN',c'TUM'},
{a:RIS',b:US',c:SOU'},
{a:'CON',b:'SEC',c:'TETUR'}
],
[
{d:'LIGU'},
{d:'GU'},
{d:'LA'}
],
[
{e'UL',f'LAM'},
{e:'COR',f:'PER'},
{e:'EGE',f:'STAS'}
]
];
const res=数据减少((acc,arr)=>{
arr.forEach((obj,i)=>{
acc[i]={…(acc[i]|{}),…obj};
});
返回acc;
}, []);
控制台日志(res)代码>您可以通过对象映射来减少
const
数据=[{a:'FER',b:'MEN',c:'TUM'},{a:'RIS',b:'US',c:'SOU'},{a:'CON',b:'SEC',c:'TETUR'},{d:'LIGU'},{d:'GU'},{d:'LA'},{e:'UL',f:'LAM'},{e:'COR f:'PER},{e:'EGE',f:'STAS'},{,
结果=data.reduce((a,b)=>a.map((o,i)=>({…o,…b[i]}));
控制台日志(结果)代码>
.as控制台包装{max height:100%!important;top:0;}
var counter=0,
最终值=[],
tmpobj={};
while(计数器{
tmpobj={
…tmpobj,
…Subar[计数器]
}
})
最终推送(tmpobj)
计数器++;
}
log('Final数组:',finalarr)
[
{a: 'FER', b: 'MEN', c: 'TUM', d: 'LIGU', e: 'UL', f: 'LAM'},
{a: 'RIS ', b: 'US', c: 'SOU', d: 'GU', e: 'COR', f: 'PER'},
{a: 'CON', b: 'SEC', c: 'TETUR', d: 'LA', e: 'EGE', f: 'STAS'}
]
var counter = 0,
finalarr = [],
tmpobj = {};
while (counter < arr[0].length) {
tmpobj = {}
arr.forEach((subarr, index) => {
tmpobj = {
...tmpobj,
...subarr[counter]
}
})
finalarr.push(tmpobj)
counter++;
}
console.log('Final array:', finalarr)