文章目录
- 问题
- 分析
问题
- 代码如下,但报错如上,请分析上述代码错误原因
let arr = [[160, 20], [179, 10], [-170, -20]];
let temp = arr.unshift([1,1]);
let tt = temp.push([0,0])console.log(tt); // 输出新生成的数组
分析
这段代码有几个错误:
-
unshift 方法返回的是修改后的数组的长度,而不是修改后的数组本身。因此,将 arr.unshift([1,1]) 的返回值赋值给 temp 是错误的。
-
push 方法返回的是修改后的数组的长度,而不是修改后的数组本身。因此,将 temp.push([0,0]) 的返回值赋值给 tt 是错误的。
-
在 console.log(tt) 中,你试图输出变量 tt,但是 tt 并没有被定义,因为之前的赋值操作是错误的。
-
修正后的代码如下:
let arr = [[160, 20], [179, 10], [-170, -20]];
arr.unshift([1, 1]);
arr.push([0, 0]);console.log(arr); // 输出新生成的数组
这样,我们直接对数组 arr 进行了修改,并在最后使用 console.log 打印出新生成的数组。