从文本框输入一个字符串 要求显示各个字符有多少个?JAVASCRIPT
<html>
<head>
<script>
function f(){
var str=document.myform.n1.value;
var i=1;
for(var a=0;a<=(str.length-1);a++)
{
var sb=str.charAt(a);
i =1;
for(var b=1+a;b<=(str.length-1);b++)
{
var sc=str.charAt(b);
if(sb==sc){i++};
i=i;
}
alert(sb);
alert(i);
}
}
</script>
</head>
<body>
<form action="" name="myform">
<input type="text" name="n1">
<input type="button" name="n2" value="确认" onclick="f()">
</form>
</body>
</html>
这是小弟的代码 ~~~例如输入abcd 就行 输入abcdab 显示a 2 b 2 c 1 d 1 a 1 b1
重复的会继续显示
老师说要加个变量存放次数 本人初学 希望各位大神解决下
答案:给你个函数,传入字符串调用吧:function showEachCharCount(str) {
var chars = new Array();
var rlt = new Array();
for(var i=0; i<str.length; i++) {
var isFound = false;
for(var j=0; j<chars.length; j++) {
if(str.charAt(i) == chars[j]) {
rlt[j] ++;
isFound = true;
break;
}
}
if(isFound)
continue;
chars[chars.length] = str.charAt(i);
rlt[rlt.length] = 1;
}
var msg = "";
for(var k=0; k<chars.length; k++) {
msg += chars[k] + ":" + rlt[k] + "\n";
}
alert(msg);
}
for(var b=1+a;b<=(str.length-1);b++)//看看你这段代码 你是要在前面的选出一个字符 然后跟后面的比较 这样对相同的字符进行累加 但是你忘了排除掉相同的这个啊 这必然会出现a2a1这种情况,想办法让重复的去掉就行了
JS过程如下:
function f() {
var str = document.myform.n1.value;
var temp = '';//存储已统计过的字符
for (var a = 0; a <= (str.length - 1); a++) {
var sb = str.charAt(a);
//判断是否已经统计过的字符
if (temp.indexOf(sb) < 0) {
var arr = str.split(sb);
alert(sb + ':' + (arr.length - 1));
temp += sb;
}
}
}
上一个:javascript中的for in 循环跟for 循环到底有什么区别啊?
下一个:如何在客户端用javascript 遍历服务器端发来的json结构的数据