有时候,我们想要对一串有实际意义的字符串做处理,例如:
下面是10个学生的一次考试成绩,但是得到的时候是一个字符串,现在我们想要对其中的数据做处理,如想要知道他们的平均分等等;
scoreStr = “小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76”;
查看字符串,找到规律,每个同学的信息都是用“;”隔开的,我们想到用js中的split()函数分割成一个一维数组,这个数组中的每个元素就是一个同学的名字和考试成绩,再查看,每个同学的姓名和成绩都是用“:”隔开的,再利用上述思想,把原来一维数组的每个元素再分割,此时,就成为了二维数组;
代码如下:
<!DOCTYPE html>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>字符串分割</title>
<script type="text/javascript">
var sum=0;
var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
document.write(scoreStr+"<br/>");
var scoreS = scoreStr.split(";");/*scoreS此时已经为一维数组*/
document.write(scoreS+"<br/>");
for(var i=0;i<scoreS.length;i++){
/*scoreS数组元素中的字符串再被分割,此时scoreS为二维数组了*/
scoreS[i] = scoreS[i].split(":");
/*可在浏览器控制台查看分割结果*/
console.log(scoreS[i][0]);
console.log(scoreS[i][1]);
}
/*现在就可对原来的字符串做其他想要的操作了*/
//例如:从数组中将成绩撮出来,然后求和取整,并输出。
for(var i=0;i<scoreS.length;i++){
sum+=scoreS[i][1]*1;/*这里的“*1”是为了告诉浏览器为数值,而非字符串*/
}
document.write("平均分为:"+sum/scoreS.length);
</script>
</head>
<body>
</body>
</html>