v1
- by nikkypizza 9/4/202000
Setup HTML - click to add setup HTML
disable setup JavaScript
Setup JavaScript
var str = 'IndivisibilitiesIndivisibilitiesIndivisibilitiesIndivisibilitiesIndivisibilitiesIndivisibilitiesIndivisibilitiesIndivisibilitiesIndivisibilitiesIndivisibilitiesIndivisibilitiesIndivisibilitiesIndivisibilitiesIndivisibilitiesIndivisibilitiesIndivisibilities';
delete caserun single casemove downdrag and drop case


ready



const duplicateCount = (string) => {
  if (string.length <= 1) {
    return 0
  }

  let startingIndex = 0;
  let count = 0;
  const array = string.toLowerCase().split('');

  const findDuplicates = (arr, i) => {
    if (i < arr.length - 1) {
      if (arr.indexOf(arr[i]) !== arr.lastIndexOf(arr[i])) {
        count++;
        findDuplicates(arr.filter(item => item !== arr[i]), i);
      } else {
        i++;
        findDuplicates(arr, i);
      }
    }
  };

  findDuplicates(array, startingIndex);

  return count;
};

duplicateCount(str);
delete caserun single casemove upmove downdrag and drop case


ready



const duplicateCount = (string) => {
  if (string.length <= 1) {
    return 0
  }

  let startingIndex = 0;
  let count = 0;
  const str = string.toLowerCase();

  const findDuplicates = (str, i) => {
    if (i < str.length - 1) {
      if (str.indexOf(str[i]) !== str.lastIndexOf(str[i])) {
        count++;
        const reg = new RegExp(str[i], 'g');
        findDuplicates(str.replace(reg, ''), i);
      } else {
        i++;
        findDuplicates(str, i);
      }
    }
  };

  findDuplicates(str, startingIndex);

  return count;
};

duplicateCount(str);
delete caserun single casemove upmove downdrag and drop case


ready



function duplicateCount(str) {
        let arr = str.toLowerCase().split('');
        let obj = {};
        let result = 0;
        arr.forEach((item) => {
            if (obj[item] === undefined) obj[item] = 0;
            obj[item] += 1;
        });
        for (key in obj) {
            if (obj[key] > 1) ++result
        }
        return result
    }

duplicateCount(str)
delete caserun single casemove upmove downdrag and drop case


ready



function getFrequency(string) {
  if (typeof string !== 'string') return;

  var charMap = {};
  var result = 0;

  string = string.toLowerCase();

  for (var i = 0; i < string.length; i++) {
    var char = string[i];
    if(charMap[char] === null) continue;

    charMap[char] ? charMap[char]++ : charMap[char] = 1;
    
    if (charMap[char] > 1)  {
      charMap[char] = null;
      result++;
    }
  }
  return result;
};

getFrequency(str)
delete caserun single casemove updrag and drop case


ready



const duplicateCount = (text) => [...text.toLowerCase()].reduce((acc, item) => {
  acc[item] = acc[item] ? (++acc[item]) : 1;
  acc.count += Number(acc[item] === 2);
  return acc;
},{count:0}).count;

duplicateCount(str)
Test Case - click to add another test case
Teardown JS - click to add teardown JavaScript
Output (DOM) - click to monitor output (DOM) while test is running
RUN