Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 数组_Javascript_Arrays - Fatal编程技术网

Javascript 数组

Javascript 数组,javascript,arrays,Javascript,Arrays,我已经盯着这段代码看了好几个小时,试图验证,但似乎找不到错误。这是一个基本的程序,使用数组存储和显示带有字母的电话号码和带有数字的电话号码。这可能是我错过的一些简单的东西,但我需要新的眼睛,有什么想法吗?先谢谢你 //Phone number translator var Letters = new Array(); Letters[0] = "ABC"; Letters[1] = "DEF"; Letters[2] = "GHI"; Letters[3] = "JKL"; Letters[4

我已经盯着这段代码看了好几个小时,试图验证,但似乎找不到错误。这是一个基本的程序,使用数组存储和显示带有字母的电话号码和带有数字的电话号码。这可能是我错过的一些简单的东西,但我需要新的眼睛,有什么想法吗?先谢谢你

//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;
}
//电话号码转换器
变量字母=新数组();
字母[0]=“ABC”;
字母[1]=“DEF”;
字母[2]=“GHI”;
字母[3]=“JKL”;
字母[4]=“MNO”;
字母[5]=“PQR”;
字母[6]=“TUV”;
字母[7]=“WXYZ”;
变量编号=新数组();
数字[0]=“2”;
数字[1]=“3”;
数字[2]=“4”;
数字[3]=“5”;
数字[4]=“6”;
数字[5]=“7”;
数字[6]=“8”;
数字[7]=“9”;
//主要程序
var userPhone=prompt(“以999-XXX-XXXX格式输入电话号码”);
警报(“userPhone=“+userPhone”);
var partsPhone=userPhone.split(“-”,3);
警报(“partsPhone[0]=”+partsPhone[0]+“\npartsPhone[1]=”+partsPhone[1]+“\npartsPhone[2]=”+partsPhone[2]);
//partsPhone[0]=区号
//partsPhone[1]=前缀
//partsPhone[2]=分机
var areacode=partsPhone[0];
var前缀=translate(partsPhone[1],3);
var sPrefix=前缀.join(“”);
var扩展=translate(partsPhone[2],4);
var sextension=extension.join(“”);
警报(“电话号码的数字版本为\n“+”+areacode+“-”+sPrefix+“-”+sExtension);
函数转换(str,numChars)
{
var外部控制=0;
var-innerControl=0;
var done=false;
var trString=新数组();
对于(outerControl=0;outerControl3)
{
if(str[outerControl]==字母[innerControl].charAt(3))
{
trString[outerControl]=数字[innerControl];
完成=正确;
}
}
}
}
}
返回trString;
}

您有语法错误

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

 str[outerControl] == Letters[innerControl].charAt(1) 
并且,将and(&&)或or(| |)运算符放在if语句中

看来你一直在打字


现在,将sExtension更改为sExtension

您得到的错误是什么?您希望它做什么?它在干什么?你遇到了什么错误?@NickZuber我根本无法让它运行,它只是显示在我的HTML容器中。如果你打开控制台(F12),它会告诉你有什么语法错误,它们在哪一行,并且有错误。试着打开开发者控制台(F12,如果在chrome中),看看你自己有什么错误。你不能只是把你的程序复制粘贴到一个问题上,然后指望我们在语句中找出印刷错误和运算符