Ordenar matriz por pares e números ímpares

Usando o javascriptsort() Estou tentando classificar uma lista, mas a ordenação tem um grupo de números pares e números ímpares.

O código que eu tentei está funcionando bem com a lista pequena, mas se a lista se tornar grande, não está me dando resultado adequado. Aqui está o meu código.

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; 
  }
});

O código acima me dá como por resultado aceito como este Ans -[0, 4, 6, 10, 12, 20, 5, 7, 13, 21, 99] e o segundo Ans é:[0, 10, 12, 20]

Funcionando bem com esta lista, mas se eu mudei para este

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];

Mas neste caso o resultado é algo como isto que não é apropriado.

Me dando Ans como este

[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] é uma mistura de números ímpares e pares.

Não está me dando resultado adequado. Alguma sugestão.

questionAnswers(3)

yourAnswerToTheQuestion