2016-10-28 20 views
-1

以下の関数は、文字列(文字列)に複数回現れる文字の数を数える必要がありますが、なぜ正しく動作しないのかわかりません。重複を数える

function duplicateCount(text){ 
 
    text.toUpperCase(); 
 
    var counter = ""; 
 
    for (var i = 0; i < text.length; i++) { 
 
     for (b = 0; b < text.length; b++){ 
 
     if(text[b] === text[i] && b !== i && counter.indexOf(text[b] === -1)) { 
 
      counter += text[b]; 
 
     
 
     } 
 
    } 
 
    } 
 
    return counter.length;

+1

に置き換える必要がありますか?あなたは何を達成しようとしていますか?すべての文字の重複の合計数を取得するか、文字ごとの重複数を取得しますか? – Matthijs

+0

if(text [b] === text [i] && b!== i && counter.indexOf(text [b] === -1)) 'を使って' if(text [b] === " –

+0

私はユニークではない文字の数を取得しようとしていますが、間違っていました") "あなたが言ったように – frol110

答えて

1

if(text[b] === text[i] && b !== i && counter.indexOf(text[b]) === -1)

0

重複とif(text[b] === text[i] && b !== i && counter.indexOf(text[b] === -1))を置き換えている、B、C、D、F = 5

function duplicateCount(text){ 
 
    text = text.toUpperCase(''); 
 
    var text_arr = []; 
 
    var total = 0; 
 
    for (var i = 0; i < text.length; i++) { 
 
     var char = text.substring(i, 1); 
 
     if(text_arr.indexOf(text[i]) == -1) { 
 
      text_arr.push(text[i]); 
 
     } else { 
 
      total++; 
 
     } 
 
    } 
 
    return total; 
 
    } 
 

 
console.log('Total duplicate characters are: '+duplicateCount('aabbccddeff'));

希望します。

0
function duplicateCount(text){ 
counterString = "" 
for (var i = 0; i < text.length; i++) { 
if(text.indexOf(text[i], i+1) != -1) { 
    counterString = counterString + text[i] 
} 
} 

alert(counterString.length); 
} 

クリシュナキショールAndhavarapu、 によって解答のほかに簡単な解決策

0

あなたのコードの2行目には、どのような方法のように正常に動作しない

var text = text.toUpperCase(); 
関連する問題