4 回答

TA贡献1818条经验 获得超8个赞
给定它的数组将具有 .[1, 2, 3]
length
3
foo[0]
是1
foo[1]
是2
foo[2]
是3
既然你然后记录哪个是... .3 <= array.length
foo[3]
undefined

TA贡献1831条经验 获得超4个赞
当您在 for 循环中使用 i<=n 运行 staircase(6) 时,在上一次迭代中,您正在访问第六个索引处的元素,该元素不存在,因此它是未定义的。数组索引从 0 开始,因此对于 staircase(6),索引最多只能达到 5。

TA贡献1966条经验 获得超4个赞
第一个循环从 1 到 n(n 次迭代)运行
for (var i=1; i <=n; i++){
// statements
}
而第二个循环从 0 到 n(总共 n+1 次迭代)
for (var i=0; i<=stair.length; i++){
console.log(stair[i])
}
由于楼梯中只有 n 个值,因此在第 n 次 + 1 次迭代中,将返回未定义。

TA贡献1820条经验 获得超9个赞
你应该在数组上运行,直到像这样:stairi < stair.length
function staircase(n) {
var stair=[]; /*array of strings */
for (var i=1; i <=n; i++){
var step= " ".repeat(n-i).concat("#".repeat(i));
stair.push(step);
}
for (var i=0; i<stair.length; i++){
console.log(stair[i])
}
}
staircase(6)
根据MDN的说法:
JavaScript 数组的索引为零:数组的第一个元素位于索引 0 处,最后一个元素的索引等于数组的 length 属性值减去 1。
添加回答
举报