javascript - 更改数组而不链接引用

标签 javascript arrays

也许我的做法是错误的,如果是这样,请告诉我!

无论如何,假设我有一个代表一些不错数据的数组。

var orignal = ['a', 'b'];
var copy = orignal;
orignal.push('c');
console.log(original === copy);  // true

我有点喜欢这个功能,其中对象仍然是相同的。当然,如果我设置original = ['c'],情况就不再是这样了。是否有任何模式可以让我在数组上执行更多操作而不破坏链接?

最佳答案

赋值是会破坏链接的一件事,因为它是对引用的操作,而不是对数组的操作。它使变量引用其他地方。您所做的任何其他操作都将通过原始副本可见:

copy.length = 5; // visible through original
copy[3] = 4;     // visible through original
copy.pop();      // visible through original

如果您认为希望通过赋值来保留链接,那么您可能应该执行一些类似但不同的操作,例如用另一个数组的内容填充一个数组。

顺便说一句,调用变量copy可能不是一个好主意,因为它不是副本。这是原创的,就像原创一样。

关于javascript - 更改数组而不链接引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23530295/

相关文章:

java - ArrayList<X> 作为 HashMap 中的键,但 X[] 数组不起作用

javascript - Codeigniter 购物车使用 jQuery 删除单个元素

javascript - React 检索(某些)DOM 值的方法

c - malloc.c 中的断言 :2453

arrays - 如何将数组的元素移动到数组的开头

javascript - 如何判断给定对象是数组还是对象?

php 获取数组的第一个值(关联与否)

javascript - 自定义 Facebook 分享按钮不起作用

javascript - 针对大型列表优化 JQuery For Each 循环

javascript - 如何从类型化数组中的二进制数据创建 PNG blob?