1
resposta

simplesmente não roda

const listaLivros = require('./arrays2')

function mergeSort(array) {
  if (array.length > 1) {
    const meio = Math.floor(array.length / 2)
    const parte1 = mergeSort(array.slice(0, meio))
    const parte2 = mergeSort(array.slice(meio, array.length))
    array = ordena(parte1, parte2)
  }
  return array
}

function ordena(parte1, parte2) {
  let posicaoAtualParte1 = 0
  let posicaoAtualParte2 = 0
  const resultado = []

  while (
    posicaoAtualParte1 < parte1.length &&
    posicaoAtualParte2 < parte2.length
  ) {
    let produtoAtualParte1 = parte1[posicaoAtualParte1]
    let produtoAtualParte2 = parte2[posicaoAtualParte2]

    if (produtoAtualParte1.preco < produtoAtualParte2.preco) {
      resultado.push(produtoAtualParte1)
      posicaoAtualParte1++
    } else {
      resultado.push(produtoAtualParte2)
      produtoAtualParte2++
    }
  }

  return resultado.concat(
    posicaoAtualParte1 < parte1.length
      ? parte1.slice(posicaoAtualParte1)
      : parte2.slice(posicaoAtualParte2)
  )
}

console.log(mergeSort(listaLivros))

o resultado sempre é esse...

#
# Fatal error in , line 0
# Fatal JavaScript invalid size error 169220804
#
#
#
#FailureMessage Object: 000000DC38CFE340
 1: 00007FF7E6DE815F v8::internal::CodeObjectRegistry::~CodeObjectRegistry+114079
 2: 00007FF7E6D0343F std::basic_ostream<char,std::char_traits<char> >::operator<<+65023
 3: 00007FF7E79E2EE2 V8_Fatal+162
 4: 00007FF7E7566D35 v8::internal::FactoryBase<v8::internal::Factory>::NewFixedArray+101xedArray+101
 5: 00007FF7E74102F3 v8::internal::FeedbackNexus::ic_state+62771
 6: 00007FF7E7426E50 v8::debug::Script::GetIsolate+15840                    26913
 7: 00007FF7E729A9A1 v8::internal::CompilationCache::IsEnabledScriptAndEval+26913
 8: 00007FF7E7739701 v8::internal::SetupIsolateDelegate::SetupHeap+494417   
 9: 000002883848A838
1 resposta

Olá Francisco, tudo bem?

Peço desculpa pela demora para respondê-lo.

Pelo que pude perceber, o erro que está ocorrendo é um erro de tamanho inválido de JavaScript. Isso pode acontecer por diversos motivos, como, por exemplo, um loop infinito ou um erro de sintaxe.

No código que você postou, não encontrei nenhum erro de sintaxe aparente. Porém, pode ser que o erro esteja sendo causado pelo arquivo "arrays2" que você está importando.

Sugiro que você verifique se esse arquivo está sendo importado corretamente e se ele está correto. Além disso, verifique se todos os objetos que você está utilizando no código estão sendo declarados corretamente.

Espero ter ajudado. Caso os problemas ainda persistam após verificar as questões que pontuei, estarei a sua disposição.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.