2016-12-30 5 views
0

スティーン内のすべての文字が同じカウントを持つかどうかを調べる方法aassddは同じカウント数が'a', 's' and 'd'です。私はお互いに文字を比較する方法を知っているが、私は文字列内の文字のカウントが同じである場合

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

のoccuranceそれぞれの番号を保持する場所を知らない私の質問には、各文字のoccuranceの数を保持し、よりは彼らに

+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

なぜ、最初のコンソールログが偽を返し、2番目の偽は返されますか? – tss1

+0

'true' /' false'は、関数 'letterCount'の' caseSensitive'のパラメータです。 'console.log'の一部ではありません。 –

+0

5分前に投稿されたサイトでは、ほぼ同じ回答を投稿する前に5秒前に伝えます。ありがとうございます!明らかにこれは良い答えです;) – Archer

関連する問題