2016-04-22 104 views
-4

我一直在盯着這段代碼試圖驗證,我似乎無法找到錯誤。這是一個基本的程序,使用數組來存儲和顯示帶有數字的電話號碼的電話號碼。它可能是一些簡單的我想念但我需要新的眼睛,任何想法?先謝謝你。JavaScript Array

//Phone number translator 

var Letters = new Array(); 
Letters[0] = "ABC"; 
Letters[1] = "DEF"; 
Letters[2] = "GHI"; 
Letters[3] = "JKL"; 
Letters[4] = "MNO"; 
Letters[5] = "PQRS"; 
Letters[6] = "TUV"; 
Letters[7] = "WXYZ"; 

var Numbers = new Array(); 
Numbers[0] = "2"; 
Numbers[1] = "3"; 
Numbers[2] = "4"; 
Numbers[3] = "5"; 
Numbers[4] = "6"; 
Numbers[5] = "7"; 
Numbers[6] = "8"; 
Numbers[7] = "9"; 

// Main routine 

var userPhone = prompt("Enter a phone number in the format 999-XXX-XXXX"); 
alert("userPhone = " + userPhone); 



var partsPhone = userPhone.split("-",3); 

alert("partsPhone[0] = " + partsPhone[0] + "\npartsPhone[1] = " +  partsPhone[1] + "\npartsPhone[2] = " + partsPhone[2]); 

//partsPhone[0] = areacode 
//partsPhone[1] = prefix 
//partsPhone[2] = extension 

var areacode = partsPhone[0]; 

var prefix = translate(partsPhone[1],3); 

var sPrefix = prefix.join(""); 

var extension = translate(partsPhone[2],4); 

var sExtensition = extension.join(""); 

alert("The numeric version of the phone number is \n" + "    " + areacode + "-" + sPrefix + "-" + sExtension); 




function translate(str, numChars) 
{ 
var outerControl = 0; 
var innerControl = 0; 
var done = false; 

var trString = new Array(); 


for(outerControl = 0; outerControl < numChars; outerControl++) 
{ 
    done = false; 
    for(innerControl = 0; (innerControl < Letters.length) && !done; innerControl++) 
    { 
    if (str[outerControl] == Letters[innerControl].charAt(0) || 
     str[outerControl] == Letters[innerControl].charAt(1) || 
     str[outerControl] == Letters[innerControl].charAt(2)) 
    { 
     trString[outerControl] = Numbers[innerControl]; 
     done = true; 

    } 
    else 
    { 
     if (Letters[innerControl].length > 3) 
     { 
      if (str[outerControl] == Letters[innerControl].charAt(3)) 
      { 
      trString[outerControl] = Numbers[innerControl]; 
      done = true; 
     } 
     } 
    } 
    } 
} 
return trString; 
} 
+3

什麼**是**你得到的錯誤..? –

+2

你期待它做什麼?它在做什麼?你遇到了什麼錯誤? – BPS

+0

@NickZuber我不能讓它運行,它只是顯示與我的HTML容器。 –

回答

1

你有一個語法錯誤

str[outerControl == Letters[innerControl].charAt(1) 

應該

str[outerControl] == Letters[innerControl].charAt(1) 

,並把AND(& &)或OR(||)運算符在if語句

看來你仍然在打字。

現在,更改sExtection擴展

+0

和經營者在聲明中 – JSess