当使用JavaScript中的push()方法将一个数组添加到另一个数组中时,它添加的是一个引用地址而不是数组的副本。如果更改其中一个数组的值,则两个数组中的该值都会更改。为了避免这种情况,可以使用spread运算符(...)或Array.from()方法创建一个新的副本数组,然后将其添加到另一个数组中。
代码示例:
// 原始代码 const arr1 = [1, 2, 3]; const arr2 = [4, 5]; arr2.push(arr1); console.log(arr2);
// 输出结果: [4, 5, [1, 2, 3]]
// 使用spread运算符 const arr1 = [1, 2, 3]; const arr2 = [4, 5]; arr2.push(...arr1); console.log(arr2);
// 输出结果: [4, 5, 1, 2, 3]
// 使用Array.from()方法 const arr1 = [1, 2, 3]; const arr2 = [4, 5]; arr2.push(...Array.from(arr1)); console.log(arr2);
// 输出结果: [4, 5, 1, 2, 3]