亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

整塊看不懂,求詳細講解,謝謝

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))


正在回答

2 回答

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)
???
???//新手解釋的有不對的地方,歡迎新手,大神的指點


0 回復 有任何疑惑可以回復我~
#1

慕粉3879583 提問者

非常感謝!
2017-01-07 回復 有任何疑惑可以回復我~
#2

那誰很靠譜3587144

莫客氣,還有不懂的繼續問,回答別人的問題,也是對自己知識的一個檢驗方式
2017-01-07 回復 有任何疑惑可以回復我~

不難,啊,比如這段,

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這個方法,截取的方式有關了。

1 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

整塊看不懂,求詳細講解,謝謝

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號