JavaScript separación impar y par en una serie de números

Quiero separar una matriz con dos grupos (impar y par) secuencialmente. pero cuando intento esto:

    var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
    
    for (var i = 0; i < arr.length; i++) {
      if (arr[i]%2 == 0) {
        arr.push(arr.splice(i, 1)[0]);
      }
    }
    
    console.log(arr);

console.log(arr); 
// [1, 3, 5, 7, 9, 4, 8, 6, 2]

¿Por qué 4,8,6,2 en lugar de 2,4,6,8?

Respuestas a la pregunta(5)

Su respuesta a la pregunta