Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Erro undefined ao ler o array

Ao executar o código abaixo:

const listaLivros2 = require('./arrayOrdenado')


function busca(array, de, ate, valorBuscado) {
    const meio = Math.floor((de + ate)/ 2);
    const atual = array[meio];

    if (valorBuscado === atual.preco) {
        return meio;
    }

    if (valorBuscado < atual.preco) {
        return busca(array, de, meio - 1, valorBuscado );
    }

    if (valorBuscado > atual.preco){
        return busca(meio + 1, ate, valorBuscado);
    }
}
console.log(busca(listaLivros, 0, listaLivros.length - 1, 40))

O console retorna o seguinte erro:

E:\Douglas\Estudo\JS -BackEnd\Algoritimos II\aula4\busca.js:7 if (valorBuscado === atual.preco) { ^

TypeError: Cannot read properties of undefined (reading 'preco') at busca (E:\Douglas\Estudo\JS -BackEnd\Algoritimos II\aula4\busca.js:7:32) at busca (E:\Douglas\Estudo\JS -BackEnd\Algoritimos II\aula4\busca.js:16:16) at Object. (E:\Douglas\Estudo\JS -BackEnd\Algoritimos II\aula4\busca.js:21:13) at Module.compile (node:internal/modules/cjs/loader:1112:14) at Module.extensions..js (node:internal/modules/cjs/loader:1166:10) at Module.load (node:internal/modules/cjs/loader:988:32) at Module.load (node:internal/modules/cjs/loader:834:12) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/runmain:77:12) at node:internal/main/run_main_module:17:47

Node.js v18.4.0

Comparei com o dos outros tópicos mas não consegui fazer dar certo
1 resposta
solução!

Encontrei meu erro, no if da linha 19

if (valorBuscado > atual.preco){
        return busca(array, meio + 1, ate, valorBuscado);
    }

estava faltando um elemento da função, eu não havia escrito "array"

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software