關於reverse()和sort()方法的返回值問題


關於reverse()和sort()方法的返回值問題

  先說結論:reverse()和sort()方法的返回值並不是當前步驟排序后的數組,而是數組的引用。
  展示如下:

var arr = [2, 5, 3, 6, 9, 7, 12, 15, 20, 35];

function compare(value1, value2) {
  if (value1 < value2) {
    return -1;
  } else if (value1 > value2) {
    return 1;
  } else {
     return 0;
  }
}

var item01 = arr.sort(compare);
// 打印item01步驟
console.log(item01);  // 打印出的結果為:[2, 3, 5, 6, 7, 9, 12, 15, 20, 35]

  下面我們再增加一個排序步驟:

var arr = [2, 5, 3, 6, 9, 7, 12, 15, 20, 35];

function compare(value1, value2) {
  if (value1 < value2) {
    return -1;
  } else if (value1 > value2) {
    return 1;
  } else {
     return 0;
  }
}

var item01 = arr.sort(compare);
var item02 = arr.reverse();
// 仍然打印item01步驟
console.log(item01);  // 打印結果為:[35, 20, 15, 12, 9, 7, 6, 5, 3, 2]

  證明sort()方法的返回值並不是經過當前步驟排序后的數組,而是數組的引用。雖然引用仍然指向這個數組,但是在console表達式語句前增加一個取反步驟后數組變了,打印的結果也跟着變了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM