我希望找出为什么看似如此简单的事情,并不像你期望的那样工作。
Array1 = ["item1", "item2", "item3", "item4", "item5"];
Array1[0] = "changeditem1";
使用Array1 [0]更改数组的方法工作正常并将值更改为changeditem1
["changeditem1", "item2", "item3", "item4", "item5"]
虽然你把它放在一个变量
中var arrayvariable = Array1[0]
尝试使用
使用变量更改数组arrayvariable = "changeditem1"
Array1 = ["item1", "item2", "item3", "item4", "item5"];
对数组没有任何作用。如果有人能够解释我是否遗漏了某些东西或者我做错了什么,那就太好了。谢谢。
答案 0 :(得分:0)
这很简单。它与数组无关。
var a = "some value";
var b = a;
var b = "change the value";
console.log(a); //some value
=
运算符将更改存储在其中的值。
因此,通过更改第3行中b
的值,我们只会更改b
而不是a
的值。
要更改a
,您需要再次将b
分配给a
,即撰写a=b;
答案 1 :(得分:0)
在javascript中,=运算符会将操作数右侧的值复制到左侧。除非右侧的变量属于对象类型,否则将复制该对象的引用。
var obj = {num:5};
var number = 5;
var array = [obj, number]
obj.num = 10;
number = 10;
console.log(array[0].num)
console.log(array[1])
有关详细说明,请参阅here
要解决您的问题,您可以存储项目的索引,以便您可以修改数组。或者您可以将数据存储为对象数组,以便在复制变量时仍可以通过它来引用它。