在Java脚本中通过数组打印时出错

时间:2016-07-02 15:18:58

标签: javascript

我正在使用split函数从数组中删除逗号,该数组在使用for循环打印数组时显示但是当我使用此代码时

 <script>
   var name = ["A", "B", "C"];
   var name_split = name.split(',')
   for(var i=0;i<name_split.length;i++)
   {
      document.write("\n",name_split[i],"\n");
   }
  </script>

我按预期获得上述代码的O / P:A B C.但是当我使用相同的代码和不同的变量时,它会产生错误,例如这个代码

 <script>
   var intro = ["Hello","World","etc"];
   var intro_split = intro.split(',');
   for(var a=0;a<intro_split.length;a++)
     {
         document.write("\n",intro_split[a],"\n");
     }
 </script>

此代码的错误是:TypeError:intro.split不是函数。为什么会这样?

3 个答案:

答案 0 :(得分:6)

'split'函数用于字符串,如下代码:

var intro = "Hello,World,etc";
var intro_split = intro.split(',');
for(var i=0;i<intro_split.length;i++)
  {
     document.write("\n",intro_split[i],"\n");
  }
打印数组项的

使用以下代码:

<script>
  var intro = ["Hello","World","etc"];
  for(var a=0;a<intro.length;a++)
  {
     document.write("\n",intro[a],"\n");
  }
</script> 

答案 1 :(得分:1)

您首次剪辑的原因是因为name是JavaScript内置属性/方法的名称:http://www.w3schools.com/js/js_reserved.asp

链接在this comment,&#34; name&#34; ...

  

...只能包含字符串,任何对象(包括数组)都会被强制转换为基本类型。

因此,它会将您的数组强制转换为字符串(您可以使用split)。例如:

var name = ["A", "B", "C"];
console.log(name);//returns "A, B, C"

可是:

var test = ["A", "B", "C"];
console.log(test);//returns ["A", "B", "C"]

答案 2 :(得分:1)

你真的不需要调用split(character-to-split-by) - 你已经有一个字符串数组(在字符串上调用split会给你一个字符串/字符数组)。所以在这种情况下,只需循环遍历intro数组:

<script>
   var intro = ["Hello","World","etc"];   
   for(var a=0;a<intro.length;a++)
     {
         document.write("\n",intro[a],"\n");
     }
 </script>

或者,如果你真的想尝试使用split,那么你可以先join数组(默认情况下,加入是用逗号,完成的)。在这种情况下,你可以这样做:

  <script>
       var intro = ["Hello","World","etc"];  
       var veryUnnecessaryStuff = intro.join();
       var intro_split = veryUnnecessaryStuff.split(','); 
       for(var a=0;a<intro_split;a++)
         {
             document.write("\n",intro_split[a],"\n");
         }
  </script>

我希望这会有所帮助。