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

13 respostas Resolvido
javascript
H

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))

13 Respostas

Lucas_Camara

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

H
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))
H

Não está fazendo o que deveria…

rodriguesabner

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

H

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:

rodriguesabner
Solucao aceita

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'
    }
}
H

Muito obrigado

rodriguesabner

deu certo?

H

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

rodriguesabner

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

H

Obrigado, seria tipo uma aula particular.

rodriguesabner

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

H

Mesmo assim, muito obrigado…

Criado 31 de agosto de 2022
Ultima resposta 1 de set. de 2022
Respostas 13
Participantes 3