搜尋

首頁  >  問答  >  主體

javascript - 怎麼理解數組排列中的sort

        var fruit=[7,10,32,6,9,4];
        document.write(fruit+'<br>');
        fruit.sort(sortFun);
        document.write(fruit);
        function sortFun(ar1,ar2){
            if(ar1>ar2){
                return 1;
            }else if(ar1<ar2){
                return -1;
            }else{
                return 0;
            }
        }

這段程式碼是怎麼讓陣列元素排列的呢?求大神詳細的講解下 感謝感謝

PHPzPHPz2792 天前642

全部回覆(3)我來回復

  • 巴扎黑

    巴扎黑2017-05-19 10:13:03

    為了幫助理解,你可以試試直接呼叫sort方法:

    var fruit=[7,10,32,6,9,4];
    fruit.sort();

    回傳結果是:[10, 32, 4, 6, 7, 9]
    而不是期待中的:[ 4, 6, 7, 9, 10, 32]

    為什麼會這樣呢?
    因為這是數組原型鏈上的sort()方法,即Array.prototype.sort()

    如何深入研究這個sort()方法:
    1.可以去看mdn文檔https://developer.mozilla.org...
    2.可以去看《javascript高級程式設計》,但高設講得不全
    3.最暴力的方法是去看ECMA2015規範:http://www.ecma-international...
    4.如果你實在覺得看得頭疼了,可以看下我去年寫的博客後再重複1,2 ,3步:http://www.jianshu.com/p/b50a...
    希望能幫助你...

    回覆
    0
  • 世界只因有你

    世界只因有你2017-05-19 10:13:03

    雷雷

    回覆
    0
  • 为情所困

    为情所困2017-05-19 10:13:03

    題主你可能需要這篇 https://developer.mozilla.org...

    回覆
    0
  • 取消回覆