[RESOLVIDO] Ajuda, não estou conseguindo ver a onde está o erro, dessa essa função em JavaScript

João gosta de chocolate , porem a mãe dele falou que se comer muito chocolates(choco) ele também precisaria comer fruta
Seu objetivo é criar uma função que receba três parâmetro sendo que:

  • parâmetro um = lista de comida (array)
  • parâmetro dois = nome da fruta (string)
  • parâmetro três = quantidade máxima de chocolate que ele pode comer (number)
    Sua função deve contar quantos chocolates(choco) aparece na lista. E se a quantidade for maior que o numero passado por parâmetro a função deve retornar o nome da fruta que foi recebida por parâmetro da seguinte maneira:
    “João deverá comer a fruta Nome__da_fruta_”.
    Exemplo:
    countChocolateFruit([“choco”, “choco”, “bala”, “choco”, “banana”, “arroz”, “choco”, “choco”],“pera” , 4)
    deve retorno : “João deverá comer pera”
    // pois temos 5 chocolates e o valor passado por parâmetro era 4. Então ele deve comer pera pois é a fruta que foi passada por parâmetro
    countChocolateFruit([“choco”, “maracuja”, “bala”, “amora”, “banana”, “arroz”, “bala”, “choco”] , “Manga” , 3)
    Deve retornar:
    “João não precisa comer fruta”
    // pois temos 2 chocolates e essa quantidade é menor que 3. Então joão não precisa comer a fruta que foi passada por parâmetro

function chocolate(comida, fruta, maxima){

let retorno = ([])

for(let i = 0; i < array.length; i++){

    if(comida[i] === fruta ){

        retorno.push(array[i])

        console.log(retorno)

    }

}

if(array.length % 2 === 0){

    return 'João deverá comer pera'

} else{

    return 'João não precisa comer fruta'

}

}

console.log(chocolate([“choco”, “maracuja”, “bala”, “amora”, “banana”, “arroz”, “bala”, “choco”] , “Manga” , 3))

ela não está fazendo o que deveria ou está dando algum erro no console?

function chocolate(comida, fruta, maxima){
    let retorno = ([])

    for(let i = 0; i < array.length; i++){

        if(comida[i] === fruta ){

            retorno.push(array[i])

            console.log(retorno)

        }

    }

    if(array.length % 2 === 0){

        return 'João deverá comer pera'

    } else{

        return 'João não precisa comer fruta'

    }

}

console.log(chocolate(["choco", "maracuja", "bala", "amora", "banana", "arroz", "bala", "choco"]  , "Manga" , 3))

Não está fazendo o que deveria…

então fala o que era pra ser feito e o que ta acontecendo

Sua função deve contar quantos chocolates(choco) aparece na lista. E se a quantidade for maior que o numero passado por parâmetro a função deve retornar o nome da fruta que foi recebida por parâmetro da seguinte maneira:

cara, ninguem vai dar o trabalho de ficar lendo a sua lição. Quando postar aqui, tenta dar uma resumida no que vc precisa, se vc tivesse colocado:

“nao consigo fazer a soma de quantos chocolates aparecem na lista”

já teria resumido metade da história…


de qualquer forma, tente assim:

function nutricionista(foods, fruit, limit) {
    let needsEatFruit = false;

    const chocoQtd = foods
        .map((food) => food === "choco") // pega td mundo q tem choco na lista
        .reduce((acc, curr) => acc + curr, 0); // soma a qtd de itens presentes
    
    if(chocoQtd > limit) { // verifica se a qtd é maior q o limite maximo
        needsEatFruit = true; // se for, muda a variavel p true
    }

    if (needsEatFruit) {
        return `João deverá comer ${fruit}`;
    } else {
        return 'João não precisa comer fruta'
    }
}

const foods = ["choco", "maracuja", "bala", "amora", "banana", "arroz", "bala", "choco"];
const ret = nutricionista(foods, "choco", 5);

console.log(ret);

Se quiser algo mais “simples”, da pra fazer assim tbm:

function nutricionista(foods, fruit, limit) {
    const chocoList = [];

    for (let i = 0; i < foods.length; i++) {
        if (foods[i] === "choco") { //verifica se algum item de foods tem "choco"
            chocoList.push(foods[i]); //se tiver adiciona na lista
        }
    }

    if(chocoList.length > limit) { // verifica se a qtd do array é maior q o limite maximo
        return `João deverá comer ${fruit}`;
    } else {
        return 'João não precisa comer fruta'
    }
}

Muito obrigado

deu certo?

Sim, será que eu posso tirar duvidas direto com você ?

pode mandando aqui no fórum mesmo, nem sempre to com tempo pra responder

Obrigado, seria tipo uma aula particular.

É, aí que não tem como mesmo kkkkkk

Mesmo assim, muito obrigado…

1 curtida