为什么运行出来那么多逗号啊啊啊啊~~~~

来源:7-23 编程练习

肆意妄为

2016-03-15 16:54

  var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";

  var num = scoreStr.split(';');

 for(i=0;i<num.length;i++){

     num2 = new Array();

     num2[i] =parseInt(num[i].slice(3,5),10);

     document.write(num2);

     };

运行结果:87,81,,97,,,76,,,,74,,,,,94,,,,,,90,,,,,,,76,,,,,,,,64,,,,,,,,,76

写回答 关注

2回答

  • 一梦千古_
    2016-03-15 17:57:20
    已采纳

    因为你每次循环都打印了一次....


    肆意妄为

    非常感谢!

    2016-03-16 17:21:01

    共 1 条回复 >

  • AgileLeo
    2016-03-15 17:50:44

    我去。你是把数字都分开截取出来了。。。

    比如你想截取 第一个 小明的分数 87,其实通过 split(';')分隔出来的第一个数组是这样字的:["小明:87"];。。。

    而不是 ["小","明",":","8","7"];所以你使用slice(3,5)截取出来的都是空的元素,所以会出现你的逗号宝宝。

    解决方法:

      var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";

      var num = scoreStr.split(';');

     for(i=0;i<num.length;i++){

         var num2 = num[i].split(':');

         document.write(num2[1]);

         };

    希望能帮到你

    其实我刚学完

    肆意妄为

    非常感谢您的回答,不过您的答案并不能解决我的问题,其实出现逗号的原因是因为我将document.write写在了for循环内,其实在循环外就不会出现此问题,不过split()的问题确实我的理解是错的,谢谢。

    2016-03-16 17:23:46

    共 1 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468060 学习 · 21891 问题

查看课程

相似问题