46 lines
1.5 KiB
JavaScript
46 lines
1.5 KiB
JavaScript
"use strict";
|
|
|
|
function getAsArray(promptMsg, separator = " ") {
|
|
return prompt(promptMsg).split(separator);
|
|
}
|
|
|
|
// use rest operator for the following functions so can accept either a
|
|
// comma-separated list of arguments or an array with a spread operator
|
|
function capitalize(...words) {
|
|
const capitalizedWords = [];
|
|
for (let word of words) {
|
|
const firstLetter = word.substring(0,1).toUpperCase();
|
|
const restOfWord = word.substring(1).toLowerCase();
|
|
capitalizedWords.push(firstLetter + restOfWord);
|
|
}
|
|
return capitalizedWords;
|
|
}
|
|
|
|
function trim(...items) {
|
|
const trimmedItems = [];
|
|
for (let item of items) {
|
|
trimmedItems.push(item.trim());
|
|
}
|
|
return trimmedItems;
|
|
}
|
|
|
|
function getColorsString(...items) {
|
|
const firstItems = items.slice(0, -1);
|
|
const lastItem = items.at(-1);
|
|
return `${firstItems.join(", ")} and ${lastItem}`;
|
|
}
|
|
|
|
function displayBio(names, dob, colors) {
|
|
alert("Hello, my name is " + names.join(" ") + ".\n" +
|
|
"I was born in " + dob.at(-1) + ".\n" +
|
|
"I have " + colors.length + " favorite colors: " +
|
|
getColorsString(...colors) + ".");
|
|
}
|
|
|
|
const names = capitalize(...getAsArray("Enter your full name"));
|
|
const dob = getAsArray("Enter your DOB in mm-dd-yyyy format", "-");
|
|
|
|
const msg = "Enter your favorite colors, separated by commas";
|
|
const colors = trim(...getAsArray(msg, ","));
|
|
|
|
displayBio(names, dob, colors); |