JS问题求助:如何将首字母大写后的数组元素无空格拼接成字符串?
问题解决:将首字母大写后的数组拼接为无空格字符串
你的代码里有两个关键问题,导致最终输出是数组而非目标无空格字符串:
- 调用
words.join(" ")时未将结果保存,且参数用空格会保留间隔,要生成无空格字符串需改用空字符串"" - 最终返回的是原数组
words,而非拼接后的字符串
修正后的代码如下:
function generateHashtag(str) { const words = str.split(" "); for (let i = 0; i < words.length; i++) { // 处理原字符串含连续空格的情况,避免空字符串导致的错误 if (words[i]) { words[i] = words[i][0].toUpperCase() + words[i].substr(1); } } // 用空字符串拼接数组元素,得到无空格的完整字符串 const result = words.join(""); // 若题目要求符合hashtag格式,可在开头添加#,无需则直接返回result return "#" + result; } console.log(generateHashtag("i am a good coder")); // 输出 "#IAmAGoodCoder"
补充说明
加入空字符串判断是为了兼容原字符串存在连续空格的场景,避免出现undefined拼接的问题。
内容的提问来源于stack exchange,提问作者Kestone Dennis
相关产品推荐
相关产品推荐

