JavaScript如何将数组内容生成hashtag并拼接至现有字符串末尾?
问题原因
- JavaScript 中的字符串是不可变原始值,
concat()方法不会修改调用它的原字符串,只会返回拼接后的新字符串。你当前的代码没有接收这个返回值,所以原caption变量的值始终没有变化。
解决方法
方案1:调整原有循环写法
只需要把concat()返回的新字符串重新赋值给caption即可:
let arr = ['aa', 'bb'] let caption = `Hello | World `; arr.forEach(el => { console.log(`#${el}`) caption = caption.concat(' ', `#${el}`) }); console.log(caption) // 输出:"Hello | World #aa #bb"
方案2:更简洁的批量拼接方案(推荐)
无需循环遍历逐段拼接,一次性处理标签数组后合并,代码可读性更高:
let arr = ['aa', 'bb'] // 去掉原caption末尾的冗余空格,后续统一加空格分隔 let caption = `Hello | World`; // 生成hashtag字符串 const hashtagStr = arr.map(item => `#${item}`).join(' '); // 合并正文和标签 caption = `${caption} ${hashtagStr}`; console.log(caption) // 输出:"Hello | World #aa #bb"
内容的提问来源于stack exchange,提问作者Pronicio
相关产品推荐
相关产品推荐

