【发布时间】:2017-10-28 16:38:58
【问题描述】:
我面临的简单问题。
arr = [[1,2,3],[3,4,5],[6,7,8]];
x = arr[0];
x[0] = 2; //x returns [2,2,3]
同时arr也更新为[[2,2,3],[3,4,5],[6,7,8]] 我怎样才能防止这种情况发生。我不想改变 arr 以及为什么会发生这种情况?
【问题讨论】:
-
如果您不想改变
arr的值,那么为什么要分配值x[0]=2,因为x=arr[0]不是复制而是通过引用创建数组?? -
使用
x = arr[0].slice()。您正在通过引用改变数组,因为您不会通过将数组分配给变量来创建副本。
标签: javascript arrays multidimensional-array