JSFiddle - React, Tailwind, and code Playground
by davepoon128
JavaScript
// Loops with Closures
/*
function assignTorpedo( name, passengerArray ) {
var torpedoAssignment;
for (var i = 0; i < passengerArray.length; i++) {
if (passengerArray[i] == name) {
torpedoAssignment = function () {
alert("Ahoy, " + name + "!\n" + "Man your post at Torpedo #" + (i+1) + "!");
};
}
}
return torpedoAssignment;
}
var subPassengers = ["Luke", "Leia", "Han", "Chewie", "Yoda", "R2-D2", "C-3P0", "Boba"];
var giveAssignment = assignTorpedo("Chewie", subPassengers);
giveAssignment();
*/
// Solution 1
/*
function assignTorpedo( name, passengerArray ) {
for (var i = 0; i < passengerArray.length; i++) {
if (passengerArray[i] == name) {
return function () {
alert("Ahoy, " + name + "!\n" + "Man your post at Torpedo #" + (i+1) + "!");
};
}
}
}
var subPassengers = ["Luke", "Leia", "Han", "Chewie", "Yoda", "R2-D2", "C-3P0", "Boba"];
var giveAssignment = assignTorpedo("Chewie", subPassengers);
giveAssignment();
*/
// Solution 2
function makeTorpedoAssigner( passengerArray ) {
return function ( name ) {
for (var i = 0; i < passengerArray.length; i++) {
if (passengerArray[i] == name) {
alert("Ahoy, " + name + "!\n" + "Man your post at Torpedo #" + (i+1) + "!");
}
}
};
}
var subPassengers = ["Luke", "Leia", "Han", "Chewie", "Yoda", "R2-D2", "C-3P0", "Boba"];
var getTorpedoFor = makeTorpedoAssigner(subPassengers);
getTorpedoFor("R2-D2");