forked from bethrobson/Head-First-JavaScript-Programming
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathplane.html
More file actions
137 lines (114 loc) · 2.94 KB
/
plane.html
File metadata and controls
137 lines (114 loc) · 2.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>First class functions</title>
<script>
var passengers = [ { name: "Jane Doloop", paid: true, ticket: "coach" },
{ name: "Dr. Evel", paid: true, ticket: "firstclass" },
{ name: "Sue Property", paid: false, ticket: "firstclass" },
{ name: "John Funcall", paid: true, ticket: "premium" } ];
function processPassengers(passengers, test) {
for (var i = 0; i < passengers.length; i++) {
if (test(passengers[i])) {
return false;
}
}
return true;
}
function checkNoFlyList(passenger) {
return (passenger.name === "Dr. Evel");
}
function checkNotPaid(passenger) {
return (!passenger.paid);
}
function printPassenger(passenger) {
var message = passenger.name;
if (passenger.paid) {
message = message + " has paid";
} else {
message = message + " has not paid";
}
console.log(message);
return false;
}
//
// plane can only fly if every passenger is on the fly flist
//
var allCanFly = processPassengers(passengers, checkNoFlyList);
if (!allCanFly) {
console.log("The plane can't take off: we have a passenger on the no fly list.");
}
//
// plane can only fly if every passenger has paid
//
var allPaid = processPassengers(passengers, checkNotPaid);
if (!allPaid) {
console.log("The plane can't take off: not everyone has paid.");
}
//
// we don't care about the result here; we're just using
// processPassengers to display the passenger list
//
processPassengers(passengers, printPassenger);
function createDrinkOrder(passenger) {
var orderFunction;
if (passenger.ticket === "firstclass") {
orderFunction = function() {
alert("Would you like a cocktail or wine?");
};
} else if (passenger.ticket === "premium") {
orderFunction = function() {
alert("Would you like wine, cola or water?");
};
} else {
orderFunction = function() {
alert("Your choice is cola or water.");
};
}
return orderFunction;
}
function createDinnerOrder(passenger) {
var orderFunction;
if (passenger.ticket === "firstclass") {
orderFunction = function() {
alert("Would you like chicken or pasta?");
};
} else if (passenger.ticket === "premium") {
orderFunction = function() {
alert("Would you like a snack box or cheese plate?");
};
} else {
orderFunction = function() {
alert("Would you like peanuts or pretzels?");
};
}
return orderFunction;
}
function pickupTrash() {
alert("Can I have your trash, please?");
}
function serveCustomer(passenger) {
var getDrinkOrderFunction = createDrinkOrder(passenger);
var getDinnerOrderFunction = createDinnerOrder(passenger);
getDrinkOrderFunction();
// get dinner order
getDinnerOrderFunction();
getDrinkOrderFunction();
getDrinkOrderFunction();
// show movie
getDrinkOrderFunction();
// pick up trash
pickupTrash();
}
function servePassengers(passengers) {
for (var i = 0; i < passengers.length; i++) {
serveCustomer(passengers[i]);
}
}
servePassengers(passengers);
</script>
</head>
<body>
</body>
</html>