简体   繁体   English

如何为 javascript 的每一行添加前缀、后缀和中缀?

[英]How to add prefix, suffix & infix to every line with javascript?

I have a string containing multiple lines like this example:我有一个包含多行的字符串,如下例所示:

01.jpg
02.jpg
03.jpg
04.jpg
05.jpg

I want the final output to be like this:我希望最终的 output 是这样的:

<img data-scr="http://example.com/01.jpg" alt="Page 01.jpg">
<img data-scr="http://example.com/02.jpg" alt="Page 02.jpg">
<img data-scr="http://example.com/03.jpg" alt="Page 03.jpg">
<img data-scr="http://example.com/04.jpg" alt="Page 04.jpg">
<img data-scr="http://example.com/05.jpg" alt="Page 05.jpg">

But my javascript isn't outputing what I want.但是我的 javascript 没有输出我想要的。 Can anyone help me fix code?谁能帮我修复代码?

 var prefix = '<img data-scr="http://example.com/'; var infix = '" alt="Page '; var suffix = '">'; var txt = `01.jpg 02.jpg 03.jpg 04.jpg 05.jpg` var fin = prefix + txt.split('\n').join(infix + '\n' + prefix) + infix + txt + suffix; console.log(fin)

Instead of joining immediately, you should map each filename to the <img string you want and concatenate inside the callback:而不是立即加入,您应该map每个文件名到您想要的<img字符串并在回调中连接:

 var prefix = '<img data-scr="http://example.com/'; var infix = '" alt="Page '; var suffix = '">'; var txt = `01.jpg 02.jpg 03.jpg 04.jpg 05.jpg` var fin = txt.split('\n').map(f => prefix + f + infix + f + suffix).join('\n'); console.log(fin)

Using a template string使用template string

 const txt = `01.jpg 02.jpg 03.jpg 04.jpg 05.jpg`; const res = txt.split("\n").map((t) => `<img data-scr="http://example.com/${t}" alt="Page ${t}">`).join("\n"); console.log(res);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM