Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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_Sorting - Fatal编程技术网

Javascript 数组排序更改当前和旧变量

Javascript 数组排序更改当前和旧变量,javascript,arrays,sorting,Javascript,Arrays,Sorting,JS资料来源: var c1 = ["Saab", "Volvo", "BMW"]; var c2=c1; c1.sort(); document.getElementById("demo").innerHTML = '1 -> '+c1+'<br>2 -> '+c2; var c1=[“萨博”、“沃尔沃”、“宝马”]; var c2=c1; c1.排序(); document.getElementById(“demo”).innerHTML='1->'+c1+'2->

JS资料来源:

var c1 = ["Saab", "Volvo", "BMW"];
var c2=c1;
c1.sort();
document.getElementById("demo").innerHTML = '1 -> '+c1+'<br>2 -> '+c2;
var c1=[“萨博”、“沃尔沃”、“宝马”];
var c2=c1;
c1.排序();
document.getElementById(“demo”).innerHTML='1->'+c1+'
2->'+c2;
结果: 1->宝马、萨博、沃尔沃 2->宝马、萨博、沃尔沃

我需要: 1->宝马、萨博、沃尔沃 2->萨博、沃尔沃、宝马

var c2=c1;
…不会创建数组的副本,而是创建对同一基础数组对象的第二个引用。因此,通过任何一个变量所做的修改都会影响同一个数组,无论是排序、添加元素还是其他

幸运的是,创建阵列副本很容易:

var c2 = c1.slice();
返回数组的一部分的副本,或者,如果调用它时没有参数(或者只有开始索引
0
),它将复制整个数组。因此,
c1
c2
变量将引用两个不同的数组,您可以对其中一个数组进行排序或修改,而无需更改另一个数组。

行:

var c2=c1;
…不会创建数组的副本,而是创建对同一基础数组对象的第二个引用。因此,通过任何一个变量所做的修改都会影响同一个数组,无论是排序、添加元素还是其他

幸运的是,创建阵列副本很容易:

var c2 = c1.slice();
返回数组的一部分的副本,或者,如果调用它时没有参数(或者只有开始索引
0
),它将复制整个数组。因此,
c1
c2
变量将引用两个不同的数组,您可以在不更改另一个数组的情况下对其中一个数组进行排序或修改

var c2=c1;
实际上,您正在使
c2
指向
c1
引用的同一对象。然后更改
c1
数组对象。由于
c2
c1
引用相同的对象,
c1
c2
将打印相同的对象

您需要创建数组对象的副本。您可以使用
c1.slice()
这样做

var c2 = c1.slice();
现在
c2
指的是
c1
数组的副本。因此,对
c1
所做的更改不会影响
c2
对象

var c2=c1;
实际上,您正在使
c2
指向
c1
引用的同一对象。然后更改
c1
数组对象。由于
c2
c1
引用相同的对象,
c1
c2
将打印相同的对象

您需要创建数组对象的副本。您可以使用
c1.slice()
这样做

var c2 = c1.slice();
现在
c2
指的是
c1
数组的副本。因此,对
c1
所做的更改不会影响
c2
对象。

只需使用slice(0):

以下是一个示例:

致以最良好的祝愿, Felipe只需使用切片(0):

以下是一个示例:

致以最良好的祝愿,
Felipe

您的变量指的是完全相同的对象(数组)。您的变量指的是完全相同的对象(数组)。非常感谢!(对不起,我的英语不好)非常感谢!(对不起,我的英语不好)