JavaScript初学者for循环填充数组后调用pop()删除末尾元素失效求助
错误原因
- 变量名重复声明:你外层用
var声明了存储数组的变量numberList,但在for循环头部又用let重新声明了同名变量作为循环计数器,二者属于不同作用域的独立变量,循环全程没有对外层的数组变量做任何操作。你循环里打印的是计数器变量的值,外层的数组始终为空,空数组调用pop()不会产生可感知的修改,所以你会误以为pop()方法失效。 - 缺少数组元素添加逻辑:你没有编写往数组中插入元素的
push()相关代码,无法把0到5的数字存入数组。 - 循环体无花括号包裹:你的for循环没有加
{}包裹逻辑,只有紧跟循环的console.log(numberList)属于循环体,后续代码和循环完全无关,就算你写了添加元素的逻辑,没放在花括号里也只会执行一次。
修正后可运行代码
var numberList = new Array(); // 循环计数器改用不冲突的变量名i for (let i = 0; i < 6 ; i++) { // 往数组末尾添加当前循环的数字 numberList.push(i); } // 删除数组最后一个元素(也就是数字5) numberList.pop(); // 输出最终结果:[0, 1, 2, 3, 4] console.log(numberList);
内容的提问来源于stack exchange,提问作者Jennifer Brett
相关产品推荐
相关产品推荐

