0

I am new to HTML5 and JavaScript, so this may be a stupid question, but when I attempt to execute this code it adds undefined before the morse answer. I haven't the slightest idea why, and a fairly extensive scrounging of the internet yielded no results. I think the issue may lie in printing the variable output to the HTML, but I have no idea what is making it add undefined.

<html>
<head>
    <title>Morse Code</title>
    <script type="text/javascript">
        function whole(){
            function convert(input){
                 for (var i=0; i<input.length; i++){
                    if (input.charAt(i)=="a"||input.charAt(i)=="A"){
                        output=output+".-/";}
                    else if (input.charAt(i)=="b"||input.charAt(i)=="B"){
                        output=output+"-.../";}
                    else if (input.charAt(i)=="c"||input.charAt(i)=="C"){
                        output=output+"-.-./";}
                    else if (input.charAt(i)=="d"||input.charAt(i)=="D"){
                        output=output+"-../";}
                    else if (input.charAt(i)=="e"||input.charAt(i)=="E"){
                        output=output+"./";}
                    else if (input.charAt(i)=="f"||input.charAt(i)=="F"){
                        output=output+"..-./";}
                    else if (input.charAt(i)=="g"||input.charAt(i)=="G"){
                        output=output+"--./";}
                    else if (input.charAt(i)=="h"||input.charAt(i)=="H"){
                        output=output+"..../";}
                    else if (input.charAt(i)=="i"||input.charAt(i)=="I"){
                        output=output+"../";}
                    else if (input.charAt(i)=="j"||input.charAt(i)=="J"){
                        output=output+".---/";}
                    else if (input.charAt(i)=="k"||input.charAt(i)=="K"){
                        output=output+"-.-/";}
                    else if (input.charAt(i)=="l"||input.charAt(i)=="L"){
                        output=output+".-../";}
                    else if (input.charAt(i)=="m"||input.charAt(i)=="M"){
                        output=output+"--/";}
                    else if (input.charAt(i)=="n"||input.charAt(i)=="N"){
                        output=output+"-./";}
                    else if (input.charAt(i)=="o"||input.charAt(i)=="O"){
                        output=output+"---/";}
                    else if (input.charAt(i)=="p"||input.charAt(i)=="P"){
                        output=output+".--./";}
                    else if (input.charAt(i)=="q"||input.charAt(i)=="Q"){
                        output=output+"--.-/";}
                    else if (input.charAt(i)=="r"||input.charAt(i)=="R"){
                        output=output+".-./";}
                    else if (input.charAt(i)=="s"||input.charAt(i)=="S"){
                        output=output+".../";}
                    else if (input.charAt(i)=="t"||input.charAt(i)=="T"){
                        output=output+"-/";}
                    else if (input.charAt(i)=="u"||input.charAt(i)=="U"){
                        output=output+"..-/";}
                    else if (input.charAt(i)=="v"||input.charAt(i)=="V"){
                        output=output+"...-/";}
                    else if (input.charAt(i)=="w"||input.charAt(i)=="W"){
                        output=output+".--/";}
                    else if (input.charAt(i)=="x"||input.charAt(i)=="X"){
                        output=output+"-..-/";}
                    else if (input.charAt(i)=="y"||input.charAt(i)=="Y"){
                        output=output+"-.--/";}
                    else if (input.charAt(i)=="z"||input.charAt(i)=="Z"){
                        output=output+"--../";}
                    else if (input.charAt(i)=="1"){
                        output=output+".----/";}
                    else if (input.charAt(i)=="2"){
                        output=output+"..---/";}
                    else if (input.charAt(i)=="3"){
                        output=output+"...--/";}
                    else if (input.charAt(i)=="4"){
                        output=output+"....-/";}
                    else if (input.charAt(i)=="5"){
                        output=output+"...../";}
                    else if (input.charAt(i)=="6"){
                        output=output+"-..../";}
                    else if (input.charAt(i)=="7"){
                        output=output+"--.../";}
                    else if (input.charAt(i)=="8"){
                        output=output+"---../";}
                    else if (input.charAt(i)=="9"){
                        output=output+"----./";}
                    else if (input.charAt(i)=="0"){
                        output=output+"-----/";}
                    else if (input.charAt(i)==" "){
                        output=output+"//";}
                    else{output=output;}
                 }
            document.getElementById('results').innerHTML=output;
            }
            var start = prompt ("Enter your sentence:");
            convert(start);
            var output = document.getElementById('results').innerHTML;
            }
    </script>
    <style>
        body{
            text-align:center;
        }
        p{
            font-size:23px;
        }
    </style>
</head>
<body>
    <h1>Clicka de button below to do some morsey codes.</h1>
    <button onclick="whole()">Try it out!</button>
    <p id="results">Your sentence will appear here</p>
</body>
</html>

1 Answer 1

2

You need to initialize output before calling convert().


Note that

else{output=output;}

is a pointless operation.

Sign up to request clarification or add additional context in comments.

1 Comment

Ah, tiny differences in order. Just love it when they make all the difference. Thank you very much kind sir, and yes, I know it's pointless, it was a placeholder.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.