Não estou conseguindo achar o erro acusado:
fiz console.log antes de entrar no while tenhos os resultados certinho, porém, quando entrar no while ele me da undefined.
const listaLivros = require("./array");
const trocaLugar = require("./encontraMenores");
function quickSort(array, esquerda, direita){
if(array.length > 1){
let indiceAtual = particiona(array, esquerda, direita);
if(esquerda < indiceAtual-1){
quickSort(array, esquerda, indiceAtual-1);
}
if(indiceAtual < direita){
quickSort(array, indiceAtual-1, direita);
}
}
return array;
}
function particiona(array, esquerda, direita){
console.log(array);
let pivo = array[Math.floor((esquerda + direita) / 2)]
let atualEsquerda = esquerda; //0
let atualDireita = direita; //10
console.log(array[atualEsquerda].preco)
console.log(array[atualDireita].preco)
console.log(pivo.preco)
while (atualEsquerda <= atualDireita){
while(array[atualEsquerda].preco < pivo.preco){
atualEsquerda++;
}
while(array[atualDireita].preco > pivo.preco){
atualDireita--;
}
if(atualEsquerda <= atualDireita){
trocaLugar(array, atualEsquerda, atualDireita);
atualEsquerda++;
atualDireita++;
}
}
return atualEsquerda;
}
console.log(quickSort(listaLivros, 0, listaLivros.length-1))
erro log:
C:\Users\.....Documents\Alura\Back-End\JS\JS-ALGORITMOS-ORDENACAO_BUSCAS\aula03\quickSort.js:35
while(array[atualDireita].preco > pivo.preco){
^
TypeError: Cannot read properties of undefined (reading 'preco')
at particiona (C:\Users\.....\Documents\Alura\Back-End\JS\JS-ALGORITMOS-ORDENACAO_BUSCAS\aula03\quickSort.js:35:35)
at quickSort (C:\Users\....\Documents\Alura\Back-End\JS\JS-ALGORITMOS-ORDENACAO_BUSCAS\aula03\quickSort.js:7:27)
at Object.<anonymous> (C:\Users\.....\Documents\Alura\Back-End\JS\JS-ALGORITMOS-ORDENACAO_BUSCAS\aula03\quickSort.js:49:13)
at Module._compile (node:internal/modules/cjs/loader:1254:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1308:10)
at Module.load (node:internal/modules/cjs/loader:1117:32)
at Module._load (node:internal/modules/cjs/loader:958:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
at node:internal/main/run_main_module:23:47