javascript分組排序文件夾和文件,在chrome個別版本異常的問題

最近實現一個需求,在前端對文件夾和文件列表按文件名,時間等進行排序。前端

需求是先顯示文件夾,再顯示文件。chrome

一開始我實現的方式:code

大概思路就是:排序

先按文件名或者時間進行排序,而後在按文件夾、文件進行排序。get

大體代碼以下:string

//根據給定的字段進行排序

    $trList.sort (

        function compareFunction(param1, param2) {

            var p1_name = param1.getAttribute(attr_name);

            var p2_name = param2.getAttribute(attr_name);

            var compare_result  =0;

            if(dataType=='string'){

                compare_result = p1_name.localeCompare(p2_name,"zh-CN");

            }else if(dataType=='num'){

                compare_result = p1_name-p2_name;

            }

           //正逆序

            if(isAsc){

                return compare_result;

            }else {

                return 0-compare_result;

            }

        });

    //對文件夾、文件進行分組排序

    $trList.sort (

        function compareFunction(param1, param2) {

            var p1_name = param1.getAttribute('data-type');

            var p2_name = param2.getAttribute('data-type');

            return p1_name.localeCompare(p2_name,"zh-CN");

        });

我本身用的是chrome77.0.3865.75 64位的,排序正常。io

不過發如今chrome 63.0.3239.132下,排序不正常。function

排查問題,具體就是在第二步對文件夾、文件進行分組排序的時候,63版本的chrome會把上一步排序的打亂。這個問題在77版本的chrome下,就沒有。List

 

解決方案:sort

先把文件夾和文件分紅兩個列表,而後分別對這兩個列表進行排序,而後再組合在一塊兒。

相關文章
相關標籤/搜索