笨小孩_517
2016-08-01 18:15:10
var sorceStr = "小明:87; 小花:81; 小紅:97; 小天:76;小張:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";?? var arr? = sorceStr.split(';');//按 ; 符號進(jìn)行數(shù)組分割? var sum = 0;? var av= 0;? for( var i =0;i<arr.length;i++ ){?? ???? var index = arr[i].indexOf(':'); //根據(jù) : 符號確定數(shù)字開始的位置 ?? ??? ?sum += parseInt(? arr[i].substr(index+1,2)? );? // parseInt() 字符串類型轉(zhuǎn)成整型?? }?? ?av = sum/arr.length;??? av = Math.floor(av);? // 取整??? 中的for里面的求解
1 回答

super_mb
TA貢獻(xiàn)101條經(jīng)驗(yàn) 獲得超107個(gè)贊
for循環(huán)的內(nèi)容不理解么?我覺得注釋的挺好的啊。
數(shù)組arr的每個(gè)元素都是 "名字:分?jǐn)?shù)" 這樣的字符串,for循環(huán)每次處理一個(gè)這樣的字符串。
indexOf()方法可以找到所傳參數(shù)字符在字符串中的索引,即 arr[i][index] == ":" 為true,這個(gè)不難理解吧。
然后 substr(a, b) 方法可以從字符串索引為a處開始,取b個(gè)字符組成一個(gè)新的字符串并返回,在這個(gè)循環(huán)中,就是從 ":" 后一位開始截取兩位字符,很明顯截取的字符串就是分?jǐn)?shù)。
通過parseInt()方法可以將分?jǐn)?shù)字符串轉(zhuǎn)換為整數(shù),所以每次的分?jǐn)?shù)相加后得到了總分 sum。
最后通過sum/arr.length就得到了平均分。
添加回答
舉報(bào)
0/150
提交
取消