目标
完善 index.js
中的 translate
函数,完善其中的 TODO 部分:
translate
函数接收一个字符串参数 alienMessage
,其中包含一系列外星人的密文。函数根据特定的翻译规则将密文翻译成人类语言,并返回翻译后的结果字符串。外星人密文翻译规则存放在 codonTable
变量中。
注意:翻译后的结果字符串之间不能有空格。
特殊条件:
- 密文如果为空,直接返回空字符串。
- 如果密文任意一处无法翻译或遇到找不到对应翻译的密文,则返回字符串
无效密语
。 - 如果密文中出现了特殊密文对应的翻译结果是
stop
,则停止翻译,返回之前已翻译的结果(不包括对应stop
的密文)
以下为提供部分测试用例,通过测试用例不代表通过全部测试,请确保代码的通用性:
测试用例 | 输入字符串 | 预期输出 |
---|---|---|
1 | IIXIIIXIV | 人类你好交个朋友 |
2 | VIIIIIXIV | 哈喽你好交个朋友 |
3 (只翻译 stop 之前的密语) | IIXIIIXXIXIV | 人类你好 |
4 (只翻译 stop 之前的密语) | IIXXXIIIIXIV | 人类 |
5 | IIXxIIIXIV | 无效密语 |
6 | ax4 | 无效密语 |
7 | '' | '' |
const translate = (alienMessage) => {
// TODO:待补充代码
let str = ''
for(let i = 0; i < alienMessage.length; i += 3){
if(!alienMessage.length) return ''
const key = alienMessage.slice(i, i + 3)
//slice 方法用于提取字符串中的一部分,并返回一个新的字符串,而不会修改原始字符串
if(codonTable[key]){
if(key !== 'XXI'){
str += codonTable[key]
}else {
return str
}
}else {
return '无效密语'
}
}
return str
};