在保持引用的同时更新阵列

时间:2013-09-10 17:56:25

标签: javascript

不确定我想要的是什么,但是

这有效:

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']

除了每次重新分配pointer时不断重新更新arr1变量之外,还有什么方法吗?

2 个答案:

答案 0 :(得分:2)

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

var pointer = arr1 = {array:['a','b','c']};
arr1.array = ['e','f'];

console.log(arr2.array);    // ['e','f']
console.log(pointer.array); // ['e','f']

答案 1 :(得分:1)

Javascript没有指针。

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