Bom dia, Pessoal como resolver o problema abaixo:
trocaDeLugar (array, array.indexOf(pivo), menores)
^TypeError: array.indexOf is not a function
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!
Bom dia, Pessoal como resolver o problema abaixo:
trocaDeLugar (array, array.indexOf(pivo), menores)
^TypeError: array.indexOf is not a function
Boa tarde, blz? Acredito que trocaDeLugar seja uma função, e você está passando os argumentos para ela. Se for isso, tente armazenar em uma variável o valor de array.indexOf(pivo), e passar essa variável como argumento.
O meu estava dando o mesmo erro, eu forcei a inicialização do argumento como Array e foi, quando gerava o TypeOf de array, ele estava vindo como undefined. Segue abaixo.
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;
}
Provavelmente isso deve ta ocorrendo pq a variável array não é um Array, era bom ver como tá sendo feita a chamada dessa função.
Até dá pra fazer como Nicolas falou, mas isso só faz com que o erro pare de aparecer, não corrigi o erro. Pode ser que acabe acarretando em um problema semântico e não resolva o problema que o algoritmo deveria resolver.