Skip to content

下面代码的输出是什么?

javascript
[[0, 1], [2, 3]].reduce(
  (acc, cur) => {
    return acc.concat(cur)
  },
  [1, 2]
)

A. [0, 1, 2, 3, 1, 2] B. [6, 1, 2] C. [1, 2, 0, 1, 2, 3] D. [1, 2, 6]

答案: C

解析:

[1, 2]是初始值。

初始值将会作为首次调用时第一个参数 acc 的值。

  • 在第一次执行时, acc 的值是 [1, 2]cur 的值是 [0, 1]。合并它们,结果为 [1, 2, 0, 1]
  • 第二次执行, acc 的值是 [1, 2, 0, 1]cur 的值是 [2, 3]。合并它们,最终结果为 [1, 2, 0, 1, 2, 3]