你好!告诉我,我如何在 JavaScript 中复制一个数组,以便当副本发生变化时,原始数组不会发生变化?例如:
a = [0, 1, 2, 3]
b = clone(a)
b[0] = 10
a[0] == 0 // => true
是否可以实施这种方法clone?
你好!告诉我,我如何在 JavaScript 中复制一个数组,以便当副本发生变化时,原始数组不会发生变化?例如:
a = [0, 1, 2, 3]
b = clone(a)
b[0] = 10
a[0] == 0 // => true
是否可以实施这种方法clone?
slice - 将数组的一部分的浅表副本返回到新的数组对象中。
在这种情况下,从头到尾
从技术上讲
slice- 最快的方式,但是如果你添加它会更快0- 作为“切断”的开始比...快
....这就是方言所说的 %)
性能测量
在 chrome
slice(0)中,它确实比普通的slice()快一点,比concat. 但Array.from即使concaty 也会丢失 10 次 - 每百万次迭代 3 秒 o_O。但 Edge 并不这么认为——它
concat是那里最快的。AArray.from仍然比concata - 1.4 秒慢 10 倍(有尾巴)。当您运行代码片段时,浏览器会挂起几秒钟——这是正常的。
当数组或数组中有对象时也有效的方法: