如何使用字符串中的数组元素打印多个句子



我正在尝试制作一个简单的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();
}

最新更新