1
resposta

Funções como parâmetros para funções

Fala galera. Peguei um exercício de JS do livro Use a Cabeça e empaquei. Help!! Segue meu código:

var passengers = [
    {name: "Jane Doloop", paid: true},
    {name:"Dr. Evel", paid: true},
    {name: "Sue Property", paid: false},
    {name: "John Funcall", paid: true}
]

function processPassengers (passengers, testFunction) {
    for (var i = passengers.length - 1; i >= 0; i--) {
        if (testFunction (passengers[i])) {
            return false;
        }
    }
    return true;
}

function checkNoFlyList(passenger){
    return (passenger.name === "Dr. Evel");
}

function checkPaid (passenger){
    return (!passenger.paid);
}

var allCanFly = processPassengers(passengers, checkNoFlyList);
if (!allCanFly) {
    console.log("The plane can`t take off: we have a passenger on the no-fly-list.");
}

var allPaid = processPassengers(passengers, checkPaid);
if (allPaid) {
    console.log("The plane can`t take off; not everyone has paid");
}

Esse é o código proposto pelo exercício, mas quando carrego minha página recebo o seguinte erro:

Uncaught ReferenceError: testfunction is not defined at processPassengers (testedevoo.js:14) at testedevoo.js:29

Minhas dúvidas: 1- A primeira dúvida é o próprio erro depurado ao carregar o código. Como posso chamar a função "testFunction" se ela ainda não foi declarada nem expressa? 2- A segunda é: como posso passar "passenger" como argumento para as minhas funções "checkNoFlyList" e "checkPaid" se não declarei essa variável em lugar nenhum?

1 resposta

Fala Júlio, tudo bom? Eu testei o código e recebi esse valor no console: The plane can`t take off: we have a passenger on the no-fly-list.

Link para teste: https://codepen.io/soutomario/pen/ayRwBv?editors=0010

Esssa era a resposta esperada?