30秒学会 JavaScript 片段 · 2018年8月20日

30秒学会 JavaScript 片段 – initializeNDArray

Create a n-dimensional array with given value.

Use recursion.
Use Array.prototype.map() to generate rows where each is a new array initialized using initializeNDArray.

代码片段

const initializeNDArray = (val, ...args) =>
  args.length === 0
    ? val
    : Array.from({ length: args[0] }).map(() => initializeNDArray(val, ...args.slice(1)));

使用样例

initializeNDArray(1, 3); // [1,1,1]
initializeNDArray(5, 2, 2, 2); // [[[5,5],[5,5]],[[5,5],[5,5]]]