JavaScript中嵌套数组的顺序添加

JavaScript中嵌套数组的顺序添加,javascript,arrays,multidimensional-array,map-function,array.prototype.map,Javascript,Arrays,Multidimensional Array,Map Function,Array.prototype.map,我试图在javascript中添加4个嵌套数组,其中包含9个数值,但出现了问题。它们当前的存储方式如下:x=[[Array19]、[Array29]、[Array39]、[Array49]] 我希望将它们压缩在一起并添加到过程中,以便将Array1[0]和Array2-4[0]添加到所有九个值中。因此,四个数组中的每一个都将它们的匹配ID相加。 数组如下所示: [1,2,4,3.6,1.05,4.65,1.95,0.5,2.5] [0.432,0.602,1.29,1.146,0.558,1.4

我试图在javascript中添加4个嵌套数组,其中包含9个数值,但出现了问题。它们当前的存储方式如下:x=[[Array19]、[Array29]、[Array39]、[Array49]]

我希望将它们压缩在一起并添加到过程中,以便将Array1[0]和Array2-4[0]添加到所有九个值中。因此,四个数组中的每一个都将它们的匹配ID相加。 数组如下所示:

[1,2,4,3.6,1.05,4.65,1.95,0.5,2.5]

[0.432,0.602,1.29,1.146,0.558,1.43,0.686,0.178,1.024]

翻译为:

[1.432、2.602等……]

我似乎无法得到一个x.map函数来按我想要的方式将它们组合在一起。任何帮助都将不胜感激


谢谢,

您可以使用遍历外部数组,并通过将嵌套数组项添加到结果数组的相应项,逐个循环嵌套数组:

常数src=[[1,2,4,3.6,1.05,4.65,1.95,0.5,2.5],[0.432,0.602,1.29,1.146,0.558,1.43,0.686,0.178,1.024]] 结果=src.reducer,a=>a.forEachn,j=>r[j]=r[j]| | 0+n,r,[] console.logresult
.作为控制台包装器{min height:100%;}您可以使用遍历外部数组,并通过将嵌套数组项添加到结果数组的相应项,逐个循环嵌套数组:

常数src=[[1,2,4,3.6,1.05,4.65,1.95,0.5,2.5],[0.432,0.602,1.29,1.146,0.558,1.43,0.686,0.178,1.024]] 结果=src.reducer,a=>a.forEachn,j=>r[j]=r[j]| | 0+n,r,[] console.logresult
.as控制台包装{最小高度:100%;}用于外部和内部阵列 设arr1=[[1,2,4,3.6,1.05,4.65,1.95,0.5,2.5], [0.432, 0.602, 1.29, 1.146, 0.558, 1.43, 0.686, 0.178, 1.024]] 设arr2=[];arr1.forEach arr=>arr.foreachinnerr,index=>{ 如果!arr2[index]arr2[index]=0;arr2[index]=arr2[index]+innerArr; };
console.logarr2 用于外部和内部阵列的每个 设arr1=[[1,2,4,3.6,1.05,4.65,1.95,0.5,2.5], [0.432, 0.602, 1.29, 1.146, 0.558, 1.43, 0.686, 0.178, 1.024]] 设arr2=[];arr1.forEach arr=>arr.foreachinnerr,index=>{ 如果!arr2[index]arr2[index]=0;arr2[index]=arr2[index]+innerArr; };
console.logarr2 使用第一个数组进行映射,将其他3个数组中的相应值添加到每个值中。您可以为任意长度的数组创建函数。请参见代码段中的sumArrays

常量数组=getData; 设sums=arrays[0]。映射v,i=>v+数组[1][i]+数组[2][i]+数组[3][i]; 设sums2=sumarraysarray; 1.对数总和; console.logsums2; 函数sumarraysarray{ 常量检查长度质量==>{ 设cando=arrays.mapv=>v.length; 返回Math.max.applynull,cando==Math.min.applynull,cando; }; 如果!检查质量{ 抛出长度不相等的数组; } 常数和=v,i=>{ 设len=arrays.length; whilelen->1{ v+=阵列[len][i]; } 返回v; }; 返回数组[0]。映射v,i=>sumv,i; } 函数getData{ 返回[ [1, 2, 4, 3.6, 1.05, 4.65, 1.95, 0.5, 2.5], [0.432, 0.602, 1.29, 1.146, 0.558, 1.43, 0.686, 0.178, 1.024], [3.1, 2, 4.3, 3.8, 1.5, 6.5, 95, 1.5, 2.5], [12, 1, 1.3, 8, 5.3, 6.2, 5, 1, 2.3] ]; }
.作为控制台包装{top:0;max height:100%!important;}使用第一个数组进行映射,将其他3个数组中的相应值添加到每个值中。您可以为任意长度的数组创建函数。请参见代码段中的sumArrays

常量数组=getData; 设sums=arrays[0]。映射v,i=>v+数组[1][i]+数组[2][i]+数组[3][i]; 设sums2=sumarraysarray; 1.对数总和; console.logsums2; 函数sumarraysarray{ 常量检查长度质量==>{ 设cando=arrays.mapv=>v.length; 返回Math.max.applynull,cando==Math.min.applynull,cando; }; 如果!检查质量{ 抛出长度不相等的数组; } 常数和=v,i=>{ 设len=arrays.length; whilelen->1{ v+=阵列[len][i]; } 返回v; }; 返回数组[0]。映射v,i=>sumv,i; } 函数getData{ 返回[ [1, 2, 4, 3.6, 1.05, 4.65, 1.95, 0.5, 2.5], [0.432, 0.602, 1.29, 1.146, 0.558, 1.43, 0.686, 0.178, 1.024], [3.1, 2, 4.3, 3.8, 1.5, 6.5, 95, 1.5, 2.5], [12, 1, 1.3, 8, 5.3, 6.2, 5, 1, 2.3] ]; }
.作为控制台包装器{top:0;max height:100%!important;}如果有很多内部数组您无法写入数组[1][i]、数组[2][i]、数组[3][i]……等等..应该在映射内部有innerloop来迭代数组。长度时间…想法?如果有很多内部数组您无法写入数组[1][i]、数组[2][i]、数组[3][i]怎么办……以此类推……在映射内部应该有innerloop来迭代数组。长度时间……想法?如果您发现任何答案,请将其标记为正确,以便有类似问题的用户知道答案。如果您发现任何答案,请将其标记为正确,以便有类似问题的用户知道答案