-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;
}
什么**是**你得到的错误..? –
你期待它做什么?它在做什么?你遇到了什么错误? – BPS
@NickZuber我不能让它运行,它只是显示与我的HTML容器。 –