我的两个变量显示相同的排序数组,但一个是上升另一个是下降,为什么显示相同?


// 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

相关内容

  • 没有找到相关文章

最新更新