¿Cómo ordenar un conjunto de números impares en orden ascendente, pero manteniendo los números pares en su posición?

Quiero ordenar solo números impares sin mover números pares. Por ejemplo, cuando escribo:

sortArray([5, 3, 2, 8, 1, 4])

El resultado esperado es:

[1, 3, 2, 8, 5, 4]

Soy nuevo en JavaScript y me encontré con un desafío en Internet que me deja perplejo. Normalmente no publicaría pidiendo una solución en Internet, PERO lo he intentado durante horas y me gustaría aprender este concepto en JavaScript.

El desafío dice:

Tienes una serie de números. Su tarea es ordenar los números impares ascendentes, pero los números pares deben estar en su lugar. Cero no es un número impar y no necesita moverlo. Si tiene una matriz vacía, debe devolverla.

Aquí está mi código hasta ahora, por favor, tómalo con calma. Estoy en las primeras etapas de la programación.

function sortArray(array) {
  let oddNums = [];
  for(let i = 0; i < array.length; i++) {
    if(array[i] % 2 !== 0) {
      oddNums.push(array[i]);
    }
  }
  oddNums = oddNums.sort((a,b)=> a-b);
  array.concat(oddNums);
  array = array.sort((a,b) => a-b);
  return array;
}

Respuestas a la pregunta(6)

Su respuesta a la pregunta