Fala galera. To estudando JS pelo livro Use a Cabeça e empaquei no exercício abaixo.
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");
}
Mas quando carrego meu código recebo o erro seguinte:
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.
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?