javascript - 复制 JavaScript 数组

标签 javascript

我在 Chrome 开发者控制台上尝试了以下代码

array = [1,2,3]
[1, 2, 3]
copyarray = array
[1, 2, 3]
copyarray = [1]
[1]
array
[1, 2, 3]
copyarray = array 
[1, 2, 3]
copyarray
[1, 2, 3]
copyarray.pop()
3
copyarray
[1, 2]
array
[1, 2]
copyarray+''
"1,2"
copyarray = copyarray +''
"1,2"
array
[1, 2]

谁能告诉我当我在“copyarray”变量上使用某些数组方法(如 pop splice 等)时“array”的值发生变化的原因吗?

最佳答案

因为当您将一个变量的值分配给另一个变量时,您正在创建对(单个)数组对象的引用的副本。 JavaScript 不提供用于制作对象的完整副本的原始操作。最接近的可能是数组上的 .slice() 方法:

var copyarray = array.slice(0);

现在有两个数组,对一个数组的修改不会影响另一个数组。

关于javascript - 复制 JavaScript 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21366619/

相关文章:

javascript - 渲染 subview 时主干 View 中没有 $(this.el)

javascript - 为什么表单提交消息显示我的 index.html 文件中的所有字符?

c# - 验证 JavaScript 中的字符串和类型转换

javascript - 将部分 JSON 字符串输出转换为 bool 值

javascript - 触发 iframe 内 textarea 的 'change' 事件

javascript - 使用 JavaScript 检测水平 div 溢出?

JavaScript scrollBy(x,y) 不适用于 Android WebView 中的样式列宽

javascript - 如何等待附加到正文的 <script> 完成执行

Javascript 数组对象属性未定义

javascript - 在 Google Scripts 中定义数组