// 1 多个数组合并为一个数组 var arr1 = [1, 2, 3]; var arr2 = [4, 5, 6]; var arr3 = [7, 8, 9]; let newArr = []; // 代码补充区域 newArr = arr1.push(...arr2); console.log(newArr); //渴望结果:[ 1, 2, 3, 4, 5, 6, 7, 8, 9 ] console.log(typeof (newArr));//是个六,因为push的返回值是数字,问题同上 console.log(arr1); //渴望结果:[ 1, 2, 3, 4, 5, 6, 7, 8, 9 ] console.log(typeof (arr1));//可行
时间: 2023-06-27 08:05:22 浏览: 79
代码补充区域应该改为:
```
newArr = arr1.concat(arr2, arr3);
console.log(newArr); //[1, 2, 3, 4, 5, 6, 7, 8, 9]
console.log(typeof newArr); //object
console.log(arr1); //[1, 2, 3]
console.log(typeof arr1); //object
```
使用 `concat()` 方法可以将多个数组合并成一个新数组,并且不修改原数组。注意,`push()` 方法返回的是合并后的数组长度,而不是新数组本身。
相关问题
用es6 多个数组合并为一个数组 var arr1 = [1, 2, 3]; var arr2 = [4, 5, 6]; var arr3 = [7, 8, 9]; let newArr = [];
可以使用ES6的展开运算符`...`来将多个数组合并为一个数组,代码如下:
```
let arr1 = [1, 2, 3];
let arr2 = [4, 5, 6];
let arr3 = [7, 8, 9];
let newArr = [...arr1, ...arr2, ...arr3];
console.log(newArr); // [1, 2, 3, 4, 5, 6, 7, 8, 9]
```
在上面的代码中,我们使用了三个数组和一个空数组。将三个数组分别用展开运算符`...`展开,然后用空数组的`concat`方法将它们合并到一起,最终得到一个新数组`newArr`。
// 1 多个数组合并为一个数组 var arr1 = [1, 2, 3]; var arr2 = [4, 5, 6]; var arr3 = [7, 8, 9]; let newArr = []; // 代码补充区域 newArr = arr1.push.apply(arr1, arr2); console.log(newArr); //渴望结果:[ 1, 2, 3, 4, 5, 6, 7, 8, 9 ] console.log(typeof (newArr)); console.log(arr1); //渴望结果:[ 1, 2, 3, 4, 5, 6, 7, 8, 9 ] console.log(typeof (arr1));为什么我的newArr是一个数字
你的代码存在两个问题:
1. push() 方法返回的是数组的新长度,而不是数组本身。因此,你需要先将 arr1 数组作为上下文对象(即调用 push() 方法的对象)传入,然后再传入 arr2 数组作为参数,这样 arr2 数组就会被添加到 arr1 数组中,并返回新的长度。所以,应该将 `newArr = arr1.push.apply(arr1, arr2);` 修改为 `Array.prototype.push.apply(arr1, arr2);`,这样就可以将 arr2 数组中的元素添加到 arr1 数组中了。
2. newArr 数组是你自己声明的一个空数组,但是你并没有给它赋值,而是直接使用了 push() 方法将 arr2 数组添加到 arr1 数组中。因此,newArr 数组并没有被修改。如果你想要 newArr 数组也包含 arr1 和 arr2 数组中的所有元素,可以使用 concat() 方法将它们合并起来,如下所示:
```
var arr1 = [1, 2, 3];
var arr2 = [4, 5, 6];
var arr3 = [7, 8, 9];
let newArr = arr1.concat(arr2, arr3);
console.log(newArr); // [1, 2, 3, 4, 5, 6, 7, 8, 9]
console.log(typeof newArr); // object
console.log(arr1); // [1, 2, 3]
console.log(typeof arr1); // object
```
这样就可以将多个数组合并为一个数组,并且保留原始数组的值了。
阅读全文