2016-12-30 55 views
0

如何查找sting中的所有不同字符是否具有相同的計數,例如aassdd具有相同的計數'a', 's' and 'd'。我知道如何字符相互比較,但我不知道在哪裏舉行各數次數如果字符串中的字符具有相同的計數發生,則爲Javascript

function letterCount(string, letter, caseSensitive) { 
     var count = 0; 
     if (!caseSensitive) { 
     string = string.toUpperCase(); 
     letter = letter.toUpperCase(); 
     } 
     for (var i=0, l=string.length; i<string.length; i += 1) { 
     if (string[i] === letter) { 
      count += 1; 
     } 
     } 
     return count; 
    } 

我的問題是如何把握每個人物次數的數量,比他們比較

+0

我不希望所有的字符比較特定的角色,我想看看每個字符的occurances相等 – tss1

+0

對不起,誤解你的問題。無論如何,看起來你有一個很好的答案。 – G0dsquad

回答

2

您可以使用對象和字符作爲count的屬性。

function letterCount(string, caseSensitive) { 
 
    var count = {}; 
 
    if (!caseSensitive) { 
 
     string = string.toUpperCase(); 
 
    } 
 
    for (var i = 0, l = string.length; i < l; i++) { 
 
     if (!count[string[i]]) { 
 
      count[string[i]] = 0; 
 
     } 
 
     count[string[i]]++; 
 
    } 
 
    return count; 
 
} 
 

 
console.log(letterCount('aAssdD', false)); 
 
console.log(letterCount('aAssdD', true));

+0

爲什麼最快的控制檯日誌返回false,第二個true? – tss1

+0

'true' /'false'是函數'letterCount'的參數'caseSensitive'。它不是'console.log'的一部分。 –

+0

5分鐘前發佈,該網站告訴我5秒後,我發佈了幾乎相同的答案。謝謝!顯然,這是一個很好的答案;) – Archer

相關問題