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);
}