deu tudo certo até executar no console.log. Fez a troca, mas o nome do elemento a ser trocado não apareceu.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
deu tudo certo até executar no console.log. Fez a troca, mas o nome do elemento a ser trocado não apareceu.
Tem como colocar o código inteiro aqui? Só essa parte não está dando para dizer muita coisa, por exemplo não sei se o de/para ai é uma array e vc está pegando somente o primeiro elemento ou é uma string
Opa tem sim, avancei para a próxima aula e o bug continua, deve ser algo no código que não esta certo.
const listaLivros = require('./array')
function encontraMenores(pivo, array) {
let menores = 0;
for(let atual = 0; atual < array.length; atual++) {
let produtoAtual = array[atual]
if (produtoAtual.preco < pivo.preco) {
menores++
}
}
trocaLugar(array, array.indexOf(pivo), menores)
return array;
}
function trocaLugar(array, de, para) {
const elem1 = [de]
const elem2 = [para]
array[para] = elem1
array[de] = elem2
}
# console.log(encontraMenores(listaLivros[2], listaLivros));
Pelo que estou vendo aqui, vc está usando como parametro a palavra array, que é uma palavra reservada, ou seja é melhor utilizar outro, tipo arrayElementos, ou algo do genero, outro ponto é nas constantes elem1 e elem2, vc está passando os indices dos elementos, porém ao jogar nas contantes vc joga eles solto, não deveria ser na array q está sendo passada?
Olha essa modificação que eu fiz:
function encontraMenores(pivo, arrayElementos) {
let menores = 0;
for(let atual = 0; atual < arrayElementos.length; atual++) {
let produtoAtual = arrayElementos[atual]
if (produtoAtual.preco < pivo.preco) {
menores++
}
}
trocaLugar(arrayElementos, arrayElementos.indexOf(pivo), menores)
return arrayElementos;
}
function trocaLugar(arrayElementos, de, para) {
console.log({ de, para })
const elem1 = arrayElementos[de]
const elem2 = arrayElementos[para]
arrayElementos[para] = elem1
arrayElementos[de] = elem2
}