在维护引用的同时更新数组

Update array while maintaining a reference

本文关键字:更新 数组 维护 引用      更新时间:2023-09-26

不确定我想要的是否可行,但是

这有效:

pointer = arr1 = ['a','b','c'];
arr1.splice(0, 1);
console.log(pointer); // ['b','c']

我想要的,但不起作用:

pointer = arr1 = ['a','b','c'];
arr1 = ['e','f'];
console.log(pointer); // desired ['e','f']
console.log(pointer); // reality ['a','b','c']

除了每次重新分配arr1时不断更新pointer变量之外,还有什么办法可以解决这个问题吗?

不,JavaScript 没有指针。唯一的方法是将数组放在对象中,然后更新对象的数组。然后,对对象的任何引用都将看到更新。

var pointer = arr1 = {array:['a','b','c']};
arr1.array = ['e','f'];
console.log(arr2.array);    // ['e','f']
console.log(pointer.array); // ['e','f']

Javascript 没有指针。

@user2736012在注释中给出的建议是个好主意,即将数组放在对象中,然后更新对象的数组。然后,对对象的任何引用都将看到更新。