首页 > 解决方案 > 为什么即使没有使用数组排序方法分配数组也会反转?

问题描述

鉴于以下情况:

let ary = [1, 2, 3];

console.dir(ary);
// ^ this console.dir outputs the reversed order, even though ary is not defined using a sort
// 3, 2, 1

function x(ary) {
  let ary2 = ary.sort( function(a,b) { return b-a } );
  // only define ary2 as the sorted array
  return ary2;  
}

document.getElementById('locationAry2').innerHTML = x(ary);
// ^ this is correct since ary2 is reversed in function x
<p id="locationAry2"></p>

当仅对 ary2 进行排序时,为什么它返回已排序的变量 'ary' 中的数组?

标签: javascript

解决方案


Array.prototype.sort修改原始数组。您需要克隆aryary2然后排序ary2


推荐阅读