javaScript統計字串中字元出現的次數
阿新 • • 發佈:2019-02-19
1. 實現
程式碼很簡單,思路是定義一個空物件來儲存字元和它對應出現的次數,如下:
/*2016-06-29*/
//隨便打一串字元做測試
var str = "sdwprwqsjxg",json = {};
for (var i = 0, l = str.length; i < l; i++) {
json[str[i]] = (json[str[i]] + 1) || 1;
}
console.log(JSON.stringify(json));
//-> {"s":2,"d":1,"w":2,"p":1,"r":1,"q":1,"j":1,"x":1,"g":1}
2. 擴充套件
基於此可以擴展出許多類似的應用。
2.1 字串中第一個重複的字元
例如字串: var str = "sdwprwqsjxg";
我們注意到第一個重複的字元為w,下面我們通過js來實現
var str = "sdwprwqsjxg",json = {};
for (var i = 0, l = str.length; i < l; i++) {
json[str[i]] = (json[str[i]] + 1) || 1;
if(json[str[i]] == 2){
alert(str[i]);//-> 第一個重複的為w
break ;//-> 找到後退出迴圈
}
}
2.2 出現次數最多的字元
例如字串: var str = "dhhafhhheeert";
我們注意到出現次數最多的字元為h(出現5次),下面我們通過js來實現
var str = "dhhafhhheeert",json = {};
for (var i = 0, l = str.length; i < l; i++) {
json[str[i]] = (json[str[i]] + 1) || 1;
}
var temp_val = 1, temp_key = str[0];
for(var key in json){
if (json[key] > temp_val){
temp_key = key;
temp_val = json[key];
}
}
alert(temp_key + ": " + temp_val);//-> h: 5