【发布时间】:2021-04-15 22:29:22
【问题描述】:
我创建了一个英语到摩尔斯电码的翻译器,它要求每个摩尔斯电码字母之间有一个空格。为了做到这一点,我在字典中的每个字母之后添加了一个额外的空格,如下所示。 但是,这意味着在句子的末尾有一个额外的空格(“”)。有什么办法可以去掉这个空间?
我尝试使用 str.slice 函数,它会删除最后一个字母的整个莫尔斯电码版本。
function morseCode(str) {
morseCode = {
"A": ".- ",
"B": "-... ",
"C": "-.-. ",
"D": "-.. ",
"E": ". ",
"F": "..-. ",
"G": "--. ",
"H": ".... ",
"I": ".. ",
"J": ".--- ",
"K": "-.- ",
"L": ".-.. ",
"M": "-- ",
"N": "-. ",
"O": "--- ",
"P": ".--. ",
"Q": "--.- ",
"R": ".-. ",
"S": "... ",
"T": "- ",
"U": "..- ",
"W": ".-- ",
"X": "-..- ",
"Y": "-.-- ",
"Z": "--.. ",
'1':'.---- ',
'2':'..--- ',
'3':'...-- ',
'4':'....- ',
'5':'..... ',
'6':'-.... ',
'7':'--... ',
'8':'---.. ',
'9':'----. ',}
str = str.replace(/[!,?]/g , '');
str = str.replace(/\s/g, '');
return str.toUpperCase().split("").map(el => {
return morseCode[el] ? morseCode[el] : el;
}).join("");
};
【问题讨论】:
-
使用 string.trim() 函数,它会删除字符串开头和结尾的空格
-
我不禁想知道为什么您不只是在
join(" ")中使用空格,而不是在字母表中包含空格。
标签: javascript string slice morse-code