Sting 的charAt方法返回相应位置的字符,使用该方法遍历String,将每个字符存入对象属性,遍历属性得到最多字符个数
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <script> window.onload = function() { new GetChar("lanleilinhello"); } function GetChar(str) { this.obj = {}; this.len = str.length; for(var i = 0; i < this.len; i++) { var c = str.charAt(i); //将每个字符作为对象属性 if(this.obj[c]) { this.obj[c]++; } else { this.obj[c] = 1; } } console.log(this.obj); //遍历对象 this.max = 0; this.maxChar = ''; for(var key in this.obj) { if(this.max < this.obj[key]) { this.max = this.obj[key]; this.maxChar = key; } } console.log("最多的字符是" + this.maxChar); console.log("出现的次数是" + this.max); } </script> </body> </html>
采用构建json的方法:
var s='lannn'; var json={}; var num=1; for(let i=0;i<s.length;i++){ var c=s.charAt(i);//出现过的字符作为json的key if(json[c]){//若出现过字符,key值加一 num++ json[c]=num; }else{ json[c]=1; } } console.log(json) var max=0; var maxChar=''; for(var key in json){ if(max<json[key]){//若max小于key值则将key值赋给max,从而取得最大次数 max=json[key]; maxChar=key; } } console.log('最多的字符为 '+maxChar); console.log('次数 '+max);
去除数组中重复数字:
window.onload = function() { var e = 'ab cde'; //将字符串反转 var a = e.split('').reverse().join(''); console.log(a); //取代空格 let b = e.replace(/s/, '+'); console.log(b) //中间加+ var c = e.split(''); var arr = []; for(var i = 0; i < c.length; i++) { arr.push(c[i]); arr.push('+'); } console.log(arr.join('').slice(0, -1)); //将数字 12345678 转化成 RMB 形式 如: 12,345,678,反过来每三个加, var num = {}; //命名空间 num.n = 12345678; num.s = num.n.toString(); num.a = num.s.split('').reverse(); num.arr = []; for(let i = 0; i < num.a.length; i++) { num.arr.push(num.a[i]); if((i + 1) % 3 == 0) { num.arr.push(','); } } console.log(num.arr.reverse().join('')); //生成 5 个不同的随机数 let ranNum = []; for(let i=0;i<5;i++){ ranNum[i]=Math.floor(Math.random()*10)+1; for(let j=0;j<i;j++){ if(ranNum[j]==ranNum[i]){ i--;//重复的数字重新生成新数字覆盖 } } } console.log(ranNum) //去掉数组中重复的数字,立flag,新数组中所有项与原数不同,flag可推入 let arr1=[2,46,7,845,7,7,7,73]; let arr2=[]; let flag=1; for(let i=0;i<arr1.length;i++,flag=1){ for(let j=0;j<i;j++){ if(arr2[j]==arr1[i]){ flag=0 } } flag?arr2.push(arr1[i]):0; } console.log(arr2)
//去掉重复数字方法二,新数组indexOf==-1(远数组中某项在新数组中不含,可推入)
var arr=[1,1,2,2,3,3,4,4];
var arr2=[];
for(var i=0;i<arr.length;i++){
if(arr2.indexOf(arr[i])==-1){
arr2.push(arr[i]);
}
}
alert(arr2);
}