Сортировка массива по четным и нечетным числам

Использование JavaScriptsort() Метод, я пытаюсь сделать сортировку списка, но сортировка в группе четных чисел и нечетных чисел.

Код, который я пробовал, прекрасно работает с небольшим списком, но если список становится большим, это не дает мне должного результата. Вот мой код

var n = [10,20,21,4,5,6,7,99,0,12,13];
//var n = [10,20,0,12];
n.sort(function(a,b){
 if (a % 2 !=b % 2 ){
   return a%2;
  }else {
    return a - b; 
  }
});

Приведенный выше код дает мне в соответствии с принятым результатом, как этот ответ -[0, 4, 6, 10, 12, 20, 5, 7, 13, 21, 99] и второй ответ:[0, 10, 12, 20]

Хорошо работает с этими списками, но если я изменился в этом

var n = [10,20,21,4,5,6,7,99,0,12,13,10,20,21,4,5,6,7,99,0,12,13,10,20,21,4,5,6,7,99,0,12,13,10,20,21,4,5,6,7,99,0,12,13];

Но в этом случае результатом является нечто подобное, что не является правильным.

Дайте мне Ans, как это

[0, 0, 0, 0, 4, 4, 4, 4, 6, 6, 6, 6, 10, 10, 10, 10, 12, 5, 12, 5, 12, 5, 20, 20, 20, 20, 5, 12, 7, 7, 7, 7, 13, 13, 13, 13, 21, 21, 21, 21, 99, 99, 99, 99] это смешивание нечетных и четных чисел.

Это не дает мне должного результата. Любое предложение.