在 JavaScript 中计算二维数组的总和

She*_*uti 4 javascript reduce multidimensional-array

我试图解决一个简单的问题:给定一个二维整数数组(由整数数组组成的数组)计算整数的总和。
例如,给定这个二维数组:

[
[1, 0, 0],
[1, 1, 0],
[1, 1, 1]
]
Run Code Online (Sandbox Code Playgroud)

输出将是6.

这是我尝试过的:

[
[1, 0, 0],
[1, 1, 0],
[1, 1, 1]
]
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我得到了三个整数,这对我来说是无稽之谈。

我还尝试了以下代码来弄清楚发生了什么,但我不明白

const array = [
[1, 0, 0],
[1, 1, 0],
[1, 1, 1]
]

const twoDsum = a => a.reduce( (r,x) => r + x.reduce( (s,y) => s + y) );

console.log(twoDsum(array));
Run Code Online (Sandbox Code Playgroud)

Ter*_*rry 5

确保您initialValue明确提供(第二个位置参数),0以便求和工作。否则将使用第一个元素,即[1,0,0],它将被转换为字符串1,0,0

用作第一次回调调用的第一个参数的值。如果未提供 initialValue,则数组中的第一个元素将用作初始累加器值

请参阅此处的工作示例:

const array = [
  [1, 0, 0],
  [1, 1, 0],
  [1, 1, 1]
]

const twoDsum = a => a.reduce((r, x) => r + x.reduce((s, y) => s + y, 0), 0);

console.log(twoDsum(array));
Run Code Online (Sandbox Code Playgroud)