Как утверждать, что пользовательский ввод содержится в массиве (правильно) до выполнения функции JavaScript, преобразующей буквы в морсекод

#javascript #arrays #assertion

Вопрос:

Я написал функцию JavaScript, которая преобразует английские буквы в morseCode, например Hello , которые преобразуются правильно, когда я печатаю на консоль. но если входные данные содержат неправильные символы, например Hel?l%o , он игнорирует неправильные символы и печатает пустое пространство.

Ожидание: программа должна утверждать, что ввод допустим. Я хочу, чтобы функция выводилась invalid input на консоль и не выполнялась, когда входные данные содержат неправильные символы.

Смотрите Мой код ниже для возможного исправления. Спасибо.

 function lettersToMorseCode(string) {
    const morseCode= ".-amp;-...amp;-.-.amp;-..amp;.amp;..-amp;--.amp;....amp;..amp;.---amp;-.-amp;.-..amp;--amp;-.amp;---amp;.--.amp;--.-amp;.-.amp;...amp;-amp;..-amp;...-amp;.--amp;-..-amp;-.--amp;--..amp;.-amp;-...amp;-.-.amp;-..amp;.amp;..-amp;--.amp;....amp;..amp;.---amp;-.-amp;.-..amp;--amp;-.amp;---amp;.--.amp;--.-amp;.-.amp;...amp;-amp;..-amp;...-amp;.--amp;-..-amp;-.--amp;--...".split("amp;");
    const letter= "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXWZ".split("");
    string.split("");

    let output = [];
        /*
        if (string.split("") !== letter){
            console.log("invalid input");  
            break;          
            }            
        */  
    for (let i = 0; i < string.length; i  ) {
        /*
        if (string[i] != letter){
            console.log("invalid input");            
        }
        */ 
        output.push(morseCode[letter.indexOf(string[i])]);        
    }
    let translateToMorse = output.join(" ");
    console.log(translateToMorse)
}
lettersToMorseCode("Enjoy");
 

Я думаю, что использую if conditions неправильно, поэтому я прокомментировал их, так как они не решают проблему.