Como classificar uma matriz de números ímpares em ordem crescente, mas mantenha os números pares em sua posição?

Quero classificar apenas números ímpares sem mover números pares. Por exemplo, quando escrevo:

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

O resultado esperado é:

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

Eu sou novo em JavaScript e me deparei com um desafio na Internet que me deixou perplexo. Normalmente, eu não postaria solicitando uma solução na Internet, mas tentei por horas e gostaria de aprender esse conceito em JavaScript.

O desafio declara:

Você tem uma matriz de números. Sua tarefa é classificar números ímpares ascendentes, mas os números pares devem estar em seus lugares. Zero não é um número ímpar e você não precisa movê-lo. Se você tiver uma matriz vazia, precisará devolvê-la.

Aqui está o meu código até agora, por favor, fique tranquilo. Estou nos estágios iniciais da programação.

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

questionAnswers(6)

yourAnswerToTheQuestion