js排序 奇數在前,偶數在後,升序排序

面試遇到了這樣一個問題,由於自己對sort還不是特別瞭解,又是筆試,無法在線調試。回家後瞭解了一下,竟然5分鐘就寫出來了。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
var arr = [1,4,2,8,3,5,10,9,7,6,41,58];

        // 排序,奇數在前,偶數在後,從小到大升序排列
        var r = arr.sort((a,b)=>{

            // 如果是a是偶數,b是奇數
            if(a%2 === 0 && b%2 !== 0){
                return 1;
            }

            // 如果是a是奇數,b是偶數
            if(a%2 !== 0 && b%2 === 0){
                return -1;
            }

            // 如果是a,b都是偶數或者奇數
            if((a%2 === 0 && b%2 === 0) || (a%2 !== 0 && b%2 !== 0)){
                return a - b;
            }

        })
        console.log(r)
    </script>
</body>

</html>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章