Javascript变量在更改后修复最后一个值
这是我的训练:Javascript变量在更改后修复最后一个值,javascript,arrays,syntax,var,array-reverse,Javascript,Arrays,Syntax,Var,Array Reverse,这是我的训练: var水果=[“香蕉”、“橘子”、“苹果”、“芒果”]; document.getElementById(“demo”).innerHTML=fruits; 函数myFunction(){ var fruits2=果实; 结果2.反向(); document.getElementById(“demo”).innerHTML=fruits+''+fruits2; } 单击按钮仅反转最后一个数组(2) 试试看 水果2=水果说水果2现在是同一个对象-不是水果的副本,而是与水果相同的对
var水果=[“香蕉”、“橘子”、“苹果”、“芒果”];
document.getElementById(“demo”).innerHTML=fruits;
函数myFunction(){
var fruits2=果实;
结果2.反向();
document.getElementById(“demo”).innerHTML=fruits+'
'+fruits2;
}
单击按钮仅反转最后一个数组(2)
试试看
水果2=水果
说水果2
现在是同一个对象-不是水果
的副本,而是与水果
相同的对象
这就像给你的朋友哈里起了个外号,比如说疯狗。当你打疯狗时,哈利也会生气。他们不是两个独立的人,他们是一个人,有两种称呼他的方式
如果要使阵列保持独立,则需要克隆阵列。制作数组副本的最简单方法是使用切片
:
var fruits2 = fruits.slice()
fruits2=fruits
表示fruits2
现在是同一个对象-不是fruits
的副本,而是与fruits
相同的对象
这就像给你的朋友哈里起了个外号,比如说疯狗。当你打疯狗时,哈利也会生气。他们不是两个独立的人,他们是一个人,有两种称呼他的方式
如果要使阵列保持独立,则需要克隆阵列。制作数组副本的最简单方法是使用切片
:
var fruits2 = fruits.slice()
这是因为您的水果
和水果2
是相同的数组。当你倒转一个,第二个也会倒转
您需要制作阵列的另一个副本。一个简单的方法是
var fruits2 = JSON.parse(JSON.stringify(fruits));
或
var水果=[“香蕉”、“橘子”、“苹果”、“芒果”];
document.getElementById(“demo”).innerHTML=fruits;
函数myFunction(){
var fruits2=fruits.slice()
结果2.反向();
document.getElementById(“demo”).innerHTML=fruits+'
'+fruits2;
}
单击按钮仅反转最后一个数组(2)
试试看
这是因为您的水果和水果2
是相同的数组。当你倒转一个,第二个也会倒转
您需要制作阵列的另一个副本。一个简单的方法是
var fruits2 = JSON.parse(JSON.stringify(fruits));
或
var水果=[“香蕉”、“橘子”、“苹果”、“芒果”];
document.getElementById(“demo”).innerHTML=fruits;
函数myFunction(){
var fruits2=fruits.slice()
结果2.反向();
document.getElementById(“demo”).innerHTML=fruits+'
'+fruits2;
}
单击按钮仅反转最后一个数组(2)
试试看
请注意,JSON.parse(JSON.stringify(…)
技巧仅在数组完全可可逆序列化时有效。与slice
相比,使用它没有任何优势。我同意这一点,这只是我在需要时使用的一种方法。我从未觉得它有优势。OP的想法是以某种方式复制数组。请注意,JSON.parse(JSON.stringify(…)
trick仅在数组完全可可逆序列化时有效。与slice
相比,使用它没有任何优势。我同意这一点,这只是我在需要时使用的一种方法。我从未觉得它有优势。OP的想法是以某种方式复制阵列。