No while:
while (posicaoAtualParte1 < parte1.length && posicaoAtualParte2 < parte2.length)
entendi que enquanto posicaoAtualParte1
for menor que o tamanho da parte1
e posicaoAtualParte2
for menor que o tamanho da parte2
o while não vai parar, mas depois do while no código é colocado um return resulta.concat(posicaoAtualParte1 < parte1.length ? parte1.slice(posicaoAtualParte1) : parte2.slice(posicaoAtualParte2))
, mas assim se o while estiver funcionando ele não deixara sair do bloco até posicaoAtualParte1
atingir o tamanho igual do parte1
e também para o posicaoAtualParte2
e o tamanho da parte2
, então como que ele vai passar do while e fazer uma verificação onde o while visava, já que é previsto que um array irá acabar e não terá mais como comparar os dois arrays e assim atingir o final do array, logo posicaoAtualParte1
ou posicaoAtualParte2
se não tiverem o mesmo tamanho nunca sairão do while.
Mas no resultado do código é totalmente diferente da minha observação não acho um erro na minha interpretação, se estiver errado, por favor corrijam-me