関数 デフォルトパラメータとレストパラメータ
入門JavaScriptプログラミング (JD Isaacks(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT3(関数)、LESSON 15(デフォルトパラメータとレストパラメータ)、15.6(練習問題)、Q15-1の解答を求めてみる。
コード
let car = function (seats = 4) {
return {
seats,
board(driver, ...passengers) {
let ps1 = passengers.slice(0, seats - 1),
ps2 = passengers.slice(seats - 1);
console.log(`ドライバー: ${driver}`);
if (ps1.length !== 0) {
console.log('乗車できる乗客');
ps1.forEach(function (p) {
console.log(p);
});
}
if (ps2.length !== 0) {
console.log('乗車できない乗客');
ps2.forEach(function (p) {
console.log(p);
});
}
},
};
};
let car1 = car();
car1.board('d1');
car1.board('d1', 'p1', 'p2', 'p3');
car1.board('d1', 'p1', 'p2', 'p3', 'p4');
car1.board('d1', 'p1', 'p2', 'p3', 'p4', 'p5');
let car2 = car(2);
car2.board('d2');
car2.board('d2', 'p1', 'p2', 'p3');
car2.board('d2', 'p1', 'p2', 'p3', 'p4');
car2.board('d2', 'p1', 'p2', 'p3', 'p4', 'p5');
入出力結果(Console)
% node sample1.js
ドライバー: d1
ドライバー: d1
乗車できる乗客
p1
p2
p3
ドライバー: d1
乗車できる乗客
p1
p2
p3
乗車できない乗客
p4
ドライバー: d1
乗車できる乗客
p1
p2
p3
乗車できない乗客
p4
p5
ドライバー: d2
ドライバー: d2
乗車できる乗客
p1
乗車できない乗客
p2
p3
ドライバー: d2
乗車できる乗客
p1
乗車できない乗客
p2
p3
p4
ドライバー: d2
乗車できる乗客
p1
乗車できない乗客
p2
p3
p4
p5
%