// const array1 = [1, 30, 4, 21, 100000, 99];
// const asscending=array1.sort((a,b)=>a-b); //for asending
// console.log(asscending);
// array1.sort((a,b)=>b-a); //for desecnding
// console.log(array1);
// console.log(asscending);
// output[ 1, 4, 21, 30, 99, 100000 ][ 100000, 99, 30, 21, 4, 1 ][ 100000, 99, 30, 21, 4, 1 ]
我的疑惑是为什么要改变变量,如何解决它
assecending变量将不通道
1条答案
按热度按时间jbose2ul1#
.sort将返回一个对原始对象的引用,而不是将其复制到一个新对象。因此两个变量都指向内存中的同一个数组。
您可以通过以下方式找到证据:
console.log(array1 === ascending);
为了避免在对数组进行排序之前创建数组的副本:
Const ascending = array1.slice().sort()或const ascending = [...array1].sort