如何更改存储在数组中的变量的值

时间:2014-03-05 19:59:44

标签: javascript arrays variables

变量可以存储到数组中。

var x = 4,
    y = 8,
    z = 15,

var someArray = [x, y, z];

如何通过数组引用变量来更改变量的值?

如果我执行以下操作,我会得到不良结果。

//change value of y to 80.

someArray[1] = 80;

代码不会将y的值更改为80,而是使用整数80替换数组中的第二项。我的数组现在为[x,80,z]

我知道我可以明确地更改y的值并更新数组......

y = 80;
someArray = [x, y, z];
someArray[1]; //80

但是在我没有明确知道该数组位置的特定变量名称的情况下,我想使用该数组来改变它的值。我该怎么做呢?我的数组概念可能是错误的。我是否将对象与数组混淆了? 感谢您给我的任何帮助和纠正。

2 个答案:

答案 0 :(得分:4)

var x = {val: 1},
    y = { val: 2 },
    z = { val: 3 },
    ary = [ x, y, z ];
// console.log(ary[0]) will put { val: 1 }
x.val = 4;
// console.log(ary[0]) will put { val: 4 }

这是因为原始值(数字/字符串)按值传递。使用后,不会引用变量的值。但是,对象通过引用传递,因此保持了连接。另请参阅我在此问题上看到的最佳文章:http://snook.ca/archives/javascript/javascript_pass

答案 1 :(得分:1)

简短的回答是数组不存储变量,而是存储变量的值,但如果要模拟这个,可以使用多维数组或对象,如下所示:

var x = 4,y = 8,z = 15;

var someArray = {'x':x, 'y':y, 'z':z};

然后,您可以通过点表示法或括号表示法访问这些值,例如获取x的值:

alert(someArray.x);
相关问题