字符串中的元素重复

时间:2020-06-20 23:41:56

标签: javascript string function loops

我正在尝试编写代码,以检测函数中的哪个元素被重复以及它被重复了多少次。该代码还将忽略大小写的差异。

示例:示例 “ abcde”-> 0#没有字符重复多次 “ aabbcde”-> 2#'a'和'b' “ aabBcde”-> 2#'a'两次出现,'b'两次出现(bB) “不可分割”-> 1#'i'出现六次

这是我的代码:

    //...
    let count = 0;
    for(let i = 0; i < str.length; i++){
      for(let j = 0; j <str.length; j++){
          if(str[i] === str[j]){
            count = count + 1 //Count will tally how many times each given letter is repeated
            return console.log(`${str[i]} occurs ${count}`)
          }
      }
      
    }
  }
  duplicateCount('blaaaab');

3 个答案:

答案 0 :(得分:1)

浏览字符串并存储出现的字符数

function duplicateCount(str) {
   let result = {}
   for(let i = 0; i < str.length; i++) {
       const char = str[i]
       if(char in result) {
           result[char] +=1
       } else {
           result[char] = 1
       }
   }
   return result
}
        
console.log(duplicateCount('blaaaab'));

参考文献

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in-for..in https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/in-输入运算符 https://www.w3schools.com/js/js_objects.asp-Javascript对象

答案 1 :(得分:0)

function repeatedCharacters(str){
   try{ 
return str.toLowerCase().split("").sort().join("").match(/(.)\1+/g).length;
 }
 catch(e){ 
return 0;
 } // if TypeError
}
console.log(repeatedCharacters("CheeecKKCaaz"))

上面的代码说明了重复的字符数,您可以对其进行修改以确定每个字符的出现。

答案 2 :(得分:0)

您可以在此处利用Set结构并获得O(n)的结果

const word = "abcdEedutyhaaaa";

const duplicates = Array.from(word.toLowerCase())
  .reduce((builder, char) => {
    builder.all.has(char) ? builder.duplicate.add(char) : builder.all.add(char);
    return builder;
  }, { duplicate: new Set(), all: new Set() })
  .duplicate
  .size;

console.log(duplicates); // => 3
相关问题