// 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 ]
我的疑问是为什么要改变升序变量以及如何解决它
递增变量不会改变
。Sort将返回对原始对象的引用,而不是将其复制到新对象。因此,两个变量都指向内存中的同一个数组。
你可以用下面的语句来证明:
console.log(array1 ===升序);
为了避免这种情况,你可以在排序之前创建一个数组的副本:
Const ascending = array1.slice().sort()或Const ascending =[…array1].sort