问答详情
源自:8-2 JavaScript 计时器

js处理数组,如下代码

<!DOCTYPE  HTML>

<html >

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>系好安全带,准备启航</title>


<script type="text/javascript">


  //通过javascript的日期对象来得到当前的日期,并输出。

  var currentDate = new Date();

  var weekday = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];

  document.write(

      currentDate.getFullYear() + "年" + 

      (currentDate.getMonth() + 1) + "月" + 

      currentDate.getDate() + "日" + " " + 

      weekday[currentDate.getDay()]

      );

  //成绩是一长窜的字符串不好处理,找规律后分割放到数组里更好操作哦

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

  var sourceArr = sorceStr.split(";");

   //document.write(sourceArr+"<br>");//test

   //从数组中将成绩撮出来,然后求和取整,并输出。

   var theNum = sourceArr.indexOf(":");                                         

   var score=sourceArr.substr(theNum+1);                                      

   document.write(theNum);                                                              

   document.write(score);                                                                  

这四句代码有什么错啊,为什么有了这四句之后,就不能正常显示后面的sun了         

   var sum = 0;

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

       sum += parseInt(sourceArr[i].substr(sourceArr[i].indexOf(":")+1));

       //document.write("<br>" + sum);//test

   }

   document.write("--班级总分为:" + sum);

   document.write(",班级平均分为(保留整数):" + Math.round(sum/sourceArr.length))

</script>

</head>

<body>

</body>

</html>


提问者:慕UI1237056 2016-04-19 15:53

个回答

  • 仁太
    2016-04-29 09:28:32
    已采纳

    var theNum = sourceArr.indexOf(":");                这里输出的是-1 说明没找到  你找的方式不对

    应该是sourceArr[i].indexOf(":")+1) 这样才能找到 因为你截取值后是一个个分开的 小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76" 这种数据  没有下标是不会进行查找的  你要放到一个循环里  才能定位到 “:”所在的位置 

  • 勇闯极限
    2016-10-08 13:59:58

    放在for循环里用indexOf()截取数字,不然不知道取数组里的那个值。

  • 什么是程序员
    2016-04-19 17:33:43

     var theNum = sourceArr.indexOf(":");这还是长字符串的啊 sourceArr[i]