Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这个Javascript金字塔数组函数是如何工作的?_Javascript_Arrays - Fatal编程技术网

这个Javascript金字塔数组函数是如何工作的?

这个Javascript金字塔数组函数是如何工作的?,javascript,arrays,Javascript,Arrays,练习:编写一个函数,当给定一个数>=0时,返回一个递增长度子数组数组。子阵列应填充1 工作原理: 棱锥体(0)=>[] 金字塔(1)=>[[1]] 金字塔(2)=>[[1],[1,1]] 金字塔(3)=>[[1],[1,1],[1,1,1]] 这是我在网上找到的解决方案: function pyramid(n) { const res = []; for(let i = 0; i < n; i++){ res.push([...Array(i+1)].fill(1))

练习:编写一个函数,当给定一个数>=0时,返回一个递增长度子数组数组。子阵列应填充1

工作原理:

棱锥体(0)=>[]
金字塔(1)=>[[1]]
金字塔(2)=>[[1],[1,1]]
金字塔(3)=>[[1],[1,1],[1,1,1]]

这是我在网上找到的解决方案:

function pyramid(n) {
  const res = [];
  for(let i = 0; i < n; i++){
    res.push([...Array(i+1)].fill(1))
  }
  return res;
}

我知道推送和填充方法是如何工作的,但是
[…数组(I+1)]
的意思是什么?

用非常专业的术语来说,这种操作称为“去冷”。它采用带孔阵列,使其成为一个合适的阵列。之所以这样做,是因为大多数阵列操作在有孔阵列上不起作用。但是
fill
不是其中之一


如果您想了解有关孔的所有信息,请检查此项:

请参阅和MDN上关于的文档。使用(点击
F12
)并对不同的输入进行实验,以查看其结果。@CertainPerformance我刚刚从问号和
res.push(数组(I+1).fill(1))
中尝试了函数,两者都给出了相同的结果。
res.push([...Array(i+1)].fill(1))