var sourceArr = sorceStr.split(";");
//document.write(sourceArr);//test
//从数组中将成绩撮出来,然后求和取整,并输出。
var score = new Array();
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))
var sourceArr = sorceStr.split(";"); //把"小明:87; 小花:81; 小红:97; 小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76"; //分割成sourceArr =["小明:87","小花:81","小红:97"....] //document.write(sourceArr);//test //从数组中将成绩撮出来,然后求和取整,并输出。 var score = new Array();//创建新数组 var sum = 0;//创建变量sum赋值0; for (var i = 0; i < sourceArr.length; i ++) //创建变量i赋值0;若i<sourceArr字符串长度(长度为10,有10个人)则执行以下代码;执行之后i自增1 { sum += parseInt(sourceArr[i].substr(sourceArr[i].indexOf(":")+1)); // sum+= 转换成整数(小明:87.获取(小明:87(":")加1下标处开始)到结尾的字符); // 第一遍:sum=0+87;第二遍sum=87+81;第三遍sum=168+97;..... //document.write("<br>" + sum);//test } document.write("--班级总分为:" + sum); document.write(",班级平均分为(保留整数):" + Math.round(sum/sourceArr.length)) // 四舍五入(总分/sourceArr的长度,也就是10) //新手解释的有不对的地方,欢迎新手,大神的指点
不难,啊,比如这段,
var sourceArr = sorceStr.split(";");
通过split方法,“;”这个是分割号,就是从那里开始切割这个字符串,将所有人的成绩分开,然后存入sourceArr这的数组,
var score = new Array();
这个应该也不难吧,创建一个数组,对吧
var sum = 0;
创建一个变量。给一个初始值“0”
for (var i = 0; i < sourceArr.length; i ++) { sum += parseInt(sourceArr[i].substr(sourceArr[i].indexOf(":")+1)); //document.write("<br>" + sum);//test }
首先想想,怎样计算平均值了,是不是要所有成绩,然后在除以个数,就是平均值啊,但是,看看上文,就是这个数组 var sourceArr = sorceStr.split(";");我们是不是把数据都放进去了,要想获取每一个数据,这个时候我们就需要使用循环,for,首先你得知道怎么使用循环,循环for(里面有三个参数,第一个是初始值,第二循环次数,第三个增量),首先,从第一个数据开始,i=0;初始数据,第二数据,循环的次数,这个取决于成绩的数量,有多少个成绩了,sourceArr.length,这个的意思就是这个数组的长度,里面有多少个数据,i++,这个就是增量了,每次循环数据肯定都不一样,所以这个增量就起到改变数据的作用,
sum += parseInt(sourceArr[i].substr(sourceArr[i].indexOf(":")+1));
然后是这一段, +=这个是什么意思了,就是累加,将本身的值+其他值,重新赋值给本身,这个 可以去看看js的符号,parseInt表示转换成数字类型,sourceArr[i],这种表示方式是通过数组下标获取数组的某个值,substr是截取字段,获取某一段指定第几个到最后的数据,详细的看参考http://www.runoob.com/jsref/jsref-substr.html 。.indexOf(":")这个是获取查询元素手册出现的位置,详细的看参考 http://www.runoob.com/jsref/jsref-indexof-array.html 。indexOf(":")+1然后这里为啥要+1,这个就和substr这个方法,截取的方式有关了。