Javascript 数组排序更改当前和旧变量
JS资料来源: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->
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您的变量指的是完全相同的对象(数组)。您的变量指的是完全相同的对象(数组)。非常感谢!(对不起,我的英语不好)非常感谢!(对不起,我的英语不好)