我正在尝试制作一个简单的JavaScript函数,该功能将字符串作为输入。例如,如果我的"地方"阵列具有元素,"房屋","农场","谷仓","酒店",我输入此字符串:
Hello, welcome to my $place. I hope you like it here at my $place.
输出将是:
Hello, welcome to my house. I hope you like it here at my house.
Hello, welcome to my farm. I hope you like it here at my farm.
Hello, welcome to my barn. I hope you like it here at my barn.
Hello, welcome to my hotel. I hope you like it here at my hotel.
可以用句子映射每个数组元素,用元素替换" $ place"的所有出现...
console.log(["house","farm"].map(el=>"Hello, welcome to my $place. I hope you like it here at my $place.".split("$place").join(el)).join("n");
您可以将元素存储在数组中,然后在其上迭代,例如使用Array#forEach
并将每个字符串与数组中的指定元素进行记录。
var place = ["house", "farm", "barn", "hotel"];
place.forEach(v => console.log("Hello, welcome to my " + v + ". I hope you like it here at my " + v + "."));
如果要准确显示用户输入的内容,请使用以下方法。
var place = prompt();
console.log("Hello, welcome to my " + place + ". I hope you like it here at my " + place + ".");
使用一些不错的ES2015功能(块范围变量,模板文字和箭头功能(。
let places = ["house", "farm", "barn", "hotel"];
places.forEach(a=>console.log(`Hello, welcome to my ${a}!`));
另外,一些不错的发电机函数怎么样?
function* welcome2places(placesArray) {
let places = placesArray;
yield* places;
}
let welcome = welcome2places(["house", "farm", "barn", "hotel"]);
let welcomeMessage = welcome.next();
while (!welcomeMessage.done) {
console.log(`Welcome to my ${welcomeMessage.value}!`);
welcomeMessage = welcome.next();
}