包含对另一个阵列的引用的Javascript子阵列

问题描述:

如何实现以下功能?包含对另一个阵列的引用的Javascript子阵列

我有一个数组:

a = [1, 2, 3, 4, 5] 
b = [a[1], a[2], a[3]] //This array should be some kind of "array of references" 

在数组b的任何变化应被应用于阵列的,以及。

的问题是,原始值StringNumberBooleanundefinednull),由值的工作,他们都是非可变的。

如果使用对象的数组元素就可以得到所需的行为:

var a = [{value: 1}, {value:2}, {value:3}, {num:4}]; 
var b = [a[1], a[2], a[3]]; 

alert(a[1].value); // 2 
b[0].value = "foo"; 
alert(a[1].value); // "foo" 
+0

有趣的想法+1 – 2010-06-18 21:48:54

+0

尼斯把戏...希望这本书能解决我的问题。任何想法如何影响整体表现? – markovuksanovic 2010-06-18 22:31:50

+0

@markovuksanovic,我不认为你会有任何性能问题,'b'只是一个*引用数组*,每个数组元素的值只是指向原始对象的引用。只是要小心不要创建循环引用,这会导致对象永远不会被垃圾回收。 @Daniel,谢谢! – CMS 2010-06-18 22:37:31