2016-04-22 53 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