题目描述:青年歌手参加歌曲大奖赛,有10个评委打分,试编程求选手的平均得分(去掉一个最高分和一个最低分)。
题目比较简单,不过需要注意数组的输入以及字符的处理。
代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>平均得分</title>
</head>
<body>
<input id="getScore" type="text">
<button onclick="demo()">平均分</button>
<p id="txt"></p>
<script>
function demo() {
var str = document.getElementById("getScore").value;
var score = new Array();
score= str.split(",");
var max = 0;
var min = 10000;
var sum = 0;
var ave = 0;
for(i=0;i<score.length;i++){
if(score[i]>max)
{
max = score[i];
}
if(score[i]<min)
{
min = score[i];
}
sum = sum+parseInt(score[i]);
}
ave = (sum-max-min)/8;
document.getElementById("txt").innerHTML =ave;
}
</script>
</body>
</html>
总结:
1.split()函数:stringObject.split(separator ,howmany),用于把一个字符串分割成字符串数组。separator 从该参数指定的地方分割 stringObject,howmany 该参数可指定返回的数组的最大长度。举例说明如下:
例子 1
<script type="text/javascript">
var str="How are you doing today?"
document.write(str.split(" ") + "<br />")
document.write(str.split("") + "<br />")
document.write(str.split(" ",3))
</script>
输出:
How,are,you,doing,today?
H,o,w, ,a,r,e, ,y,o,u, ,d,o,i,n,g, ,t,o,d,a,y,?
How,are,you
例子 2
"2:3:4:5".split(":") //将返回["2", "3", "4", "5"]
"|a|b|c".split("|") //将返回["", "a", "b", "c"]
注释:String.split() 执行的操作与 Array.join 执行的操作是相反的。
2.输入的数字默认类型为字符,相加就相当于字符相连接,所以需要将其强制转换为整型(parseInt(score[i]));