如何将句子拆分为单个字符传入摩尔斯电码生成函数
摩尔斯电码生成器字符串拆分与功能实现方案
1. 核心需求实现思路
你需要的字符串拆分操作在JavaScript中可以直接通过以下两种方式实现:
- 调用
split('')方法将字符串拆分为单个字符组成的数组 - 直接用
for...of循环遍历字符串的每一个字符
注意:需要额外处理小写字母转大写、空格分隔单词的逻辑,同时你原有代码中的全局count变量会导致多次调用结果累加,建议做对应调整
2. 优化后可直接运行的完整代码
// 单个字符转摩尔斯电码的函数 function charToMorse(char) { switch(char.toUpperCase()) { case 'A': return '.- ' case 'B': return '-... ' case 'C': return '-.-. ' case 'D': return '-.. ' case 'E': return '. ' case 'F': return '..-. ' case 'G': return '--. ' case 'H': return '.... ' case 'I': return '.. ' case 'J': return '.--- ' case 'K': return '-.- ' case 'L': return '.-.. ' case 'M': return '-- ' case 'N': return '-. ' case 'O': return '--- ' case 'P': return '.--. ' case 'Q': return '--.- ' case 'R': return '.-. ' case 'S': return '... ' case 'T': return '- ' case 'U': return '..- ' case 'V': return '...- ' case 'W': return '.-- ' case 'X': return '-..- ' case 'Y': return '-.-- ' case 'Z': return '--.. ' case '1': return '.---- ' case '2': return '..--- ' case '3': return '...-- ' case '4': return '....- ' case '5': return '..... ' case '6': return '-.... ' case '7': return '--... ' case '8': return '---.. ' case '9': return '----. ' case '0': return '----- ' // 处理单词间的空格,用/分隔方便识别 case ' ': return '/ ' default: return '' } } // 整段文本转摩尔斯电码的函数 function textToMorse(text) { let morseResult = '' // 遍历输入文本的每一个字符,自动完成拆分处理 for (let char of text) { morseResult += charToMorse(char) } return morseResult.trim() } // 测试用例 console.log(textToMorse("HELLO WORLD")) // 输出结果:.... . .-.. .-.. --- / .-- --- .-. .-.. -..
3. 功能说明
- 输入的文本会自动遍历每一个字符,不需要手动拆分
- 自动兼容小写字母输入,不需要提前转换大小写
- 自动识别单词之间的空格,用
/标记单词间隔 - 没有全局变量污染,多次调用不会出现结果累加的问题
内容的提问来源于stack exchange,提问作者Shamman Rahin
相关产品推荐
相关产品推荐

