1. 程式人生 > >javaScript統計字串中字元出現的次數

javaScript統計字串中字元出現的次數

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