Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript变量在更改后修复最后一个值_Javascript_Arrays_Syntax_Var_Array Reverse - Fatal编程技术网

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的想法是以某种方式复制阵列。