Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在循环中合并对象_Javascript_Arrays_Loops_Object_Merge - Fatal编程技术网

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)