1
resposta

não da erro, porem nao sai na ordem certa

const livros = require(./listaLivros);

function menorValor(arrProdutos, posicaoInicial) { let maisBarato = posicaoInicial; for (let atual = 0; atual < arrProdutos.length; atual++) { if (arrProdutos[atual].preco < arrProdutos[maisBarato].preco) { maisBarato = atual } } return maisBarato } module.exports = menorValor

const livros = require(./listaLivros); const menorValor = require(./menorValor);

for(let atual = 0; atual < livros.length - 1 ; atual++){ let menor = menorValor(livros, atual)

let livroAtual = livros[atual]; let livroMenorPreco = livros[menor];

livros[atual] = livroMenorPreco; livros[menor] = livroAtual; }

console.log(livros)

const precosLivros = [ { titulo: "JavaScript", preco: 25 }, { titulo: "PHP", preco: 15 }, { titulo: "Java", preco: 30 }, { titulo: "Elixir", preco: 50 }, { titulo:"Go", preco: 45 } , { titulo:"Python", preco: 20} ] module.exports = precosLivros;

1 resposta
for (let atual = posicaoInicial; atual < arrProdutos.length; atual++) { 

A ideia aqui é que dentro da função menorValor(), após cada loop vc já tenha o menor valor na posição correta, então não precisa considerá-lo. Nesse caso, só precisa começar a verificar onde está o menor valor a partir da posicaoInicial.