计算重复数

时间:2016-10-28 10:52:19

标签: javascript duplicates iteration

下面的函数应该计算多次出现的字符串(文本)中的字母数,我不明白为什么它不能正常工作。



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;
&#13;
&#13;
&#13;

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

重复是a,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'));

希望它有所帮助。

答案 2 :(得分: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);
}

一个简单的解决方案

答案 3 :(得分:0)

除了Krishna Kishore Andhavarapu的回答, 您的代码的第二行应替换为

var text = text.toUpperCase();