在Javascript中按行和按列查找2d数组的和

在Javascript中按行和按列查找2d数组的和,javascript,Javascript,我想这样求数组的和 12=4 2 1=5 31=7 === 6 6 4 我想使用html中的java脚本打印这样的数组总和。首先将问题分解成更小的部分。我定义了一个基本的sum函数,它是使用一个更基本的add函数定义的映射pingsum输入数组将为您提供水平和 垂直总和稍微复杂一些,但也不太难。我定义了一个转置函数来旋转我们的矩阵。一旦我们旋转,我们就可以以同样的方式对行进行求和 此解决方案适用于任何MxN矩阵 //通用的、可重用的函数 常数加=(x,y)=>x+y const sum=xs=

我想这样求数组的和

12=4

2 1=5

31=7

===

6 6 4


我想使用html中的java脚本打印这样的数组总和。

首先将问题分解成更小的部分。我定义了一个基本的
sum
函数,它是使用一个更基本的
add
函数定义的<代码>映射ping
sum
输入数组将为您提供水平和

垂直总和稍微复杂一些,但也不太难。我定义了一个
转置
函数来旋转我们的矩阵。一旦我们旋转,我们就可以以同样的方式对行进行求和

此解决方案适用于任何MxN矩阵

//通用的、可重用的函数
常数加=(x,y)=>x+y
const sum=xs=>xs.reduce(add,0)
常数头=([x,…xs])=>x
常数尾=([x,…xs])=>xs
常量转置=([xs,…xxs])=>{
常量aux=([x,…xs])=>
x==未定义
?转置(xxs)
:[[x,…xxs.map(head)],…转置([xs,…xxs.map(tail)])]
返回xs==未定义?[]:aux(xs)
}
//样本数据
让数字=[
[1,1,1],
[2,2,2],
[3,3,3],
[4,4,4]
]
//排
console.log(number.map(sum))
// [ 3, 6, 9, 12 ]
//纵队
console.log(转置(数字).map(总和))

//[10,10,10]
您试过什么吗?行应该很简单,列也不会太难……这对你来说是家庭作业吗?它应该只需要两个嵌套的for循环,一个循环遍历每行中的每个单元格,另一个循环遍历每列中的每个单元格。arr=new Array(3)arr[0]=new Array(3)arr[1]=new Array(3)arr[2]=new Array(3)for(i=0;我做了这个lolz不需要解;)谢谢,但我有其他方法来解it@dilshad,是的,我看到了,但是for-loop解决方案就像洞穴墙上的标记一样粗糙。我知道OP要求特定场景,但您的代码仅适用于NxN数组。@naomik try:
numbers=[[1,1,2,1],[2,2,1],[3,3,1],[5,4,3]]
.cols将产生:
[11,10,7,NaN]
@naomik
让cols=numbers[0].map(u,i)=>sum(numbers.map(index(i)))
应该可以工作。