JavaScript中的引用数组元素

JavaScript中的引用数组元素,javascript,syntax,Javascript,Syntax,假设我有以下JavaScript代码: var x = 2; var myArray = [0,1,x]; x = 3; 更改x的值将使myArray完全保持不变,因此myArray[2]仍然是2 我如何设置它,以便在不知道索引的情况下反复更改myArray[*x所在的位置]的元素?您可以将值放入对象中 var x={ 价值:2 } var myArray=[0,1,x]; console.log(myArray[2].value);//2. x、 数值=3; console.log(myA

假设我有以下JavaScript代码:

var x = 2;
var myArray = [0,1,x];
x = 3;
更改
x
的值将使
myArray
完全保持不变,因此
myArray[2]
仍然是2


我如何设置它,以便在不知道索引的情况下反复更改
myArray[*x所在的位置]
的元素?

您可以将值放入对象中

var x={
价值:2
}
var myArray=[0,1,x];
console.log(myArray[2].value);//2.
x、 数值=3;

console.log(myArray[2].value);//3
您可以将您的值放入对象中

var x={
价值:2
}
var myArray=[0,1,x];
console.log(myArray[2].value);//2.
x、 数值=3;

console.log(myArray[2].value);//3
您可以定义一个getter作为对活动变量的引用:

var myArray = Object.defineProperty([0,1], 2, {
    get() { return x },
    enumerable: true,
    configurable: true
});
var x = 2;
console.log(myArray);
x = 3;
console.log(myArray);
当然,这对阵列来说是一件可怕的事情,而且在使用阵列的每个地方都可能导致严重的性能损失。所以:不要这样做。只需在每个位置分配给
myArray[2]
而不是
x
,或者使用getter/setter函数对而不是执行此操作的
x
变量

function setX(v) { myArray[2] = v; }
var myArray = [0,1,2];
setX(2);
console.log(myArray);
setX(3);
console.log(myArray);

您可以定义一个getter作为对活动变量的引用:

var myArray = Object.defineProperty([0,1], 2, {
    get() { return x },
    enumerable: true,
    configurable: true
});
var x = 2;
console.log(myArray);
x = 3;
console.log(myArray);
当然,这对阵列来说是一件可怕的事情,而且在使用阵列的每个地方都可能导致严重的性能损失。所以:不要这样做。只需在每个位置分配给
myArray[2]
而不是
x
,或者使用getter/setter函数对而不是执行此操作的
x
变量

function setX(v) { myArray[2] = v; }
var myArray = [0,1,2];
setX(2);
console.log(myArray);
setX(3);
console.log(myArray);

你能分享一个如何在你的软件中使用它的例子吗?不。。。这是一个原始值。你说的“x在哪里”是什么意思?是否需要动态查找“替换值”的索引?“previous”值是否保证在数组中?数组是否保证不包含重复项?这有点奇怪。我正在使用四维数组作为画布游戏中的精灵表,我想有一个简单的方法来更改精灵动画中的关键元素,而不必为每个精灵编写不同的setter函数。你能分享一个如何在你的软件中使用它的示例吗?不。。。这是一个原始值。你说的“x在哪里”是什么意思?是否需要动态查找“替换值”的索引?“previous”值是否保证在数组中?数组是否保证不包含重复项?这有点奇怪。我在画布游戏中使用四维数组作为精灵表,我希望有一种简单的方法来更改精灵动画中的关键元素,而不必为每个精灵编写不同的setter函数。