Created
October 22, 2015 15:25
-
-
Save OriginUnknown/8086ec6895b38ad15818 to your computer and use it in GitHub Desktop.
Letter duplication - find out which words have the most number of duplicated letters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var compareNumOfDupes = function(){ | |
var args = Array.prototype.slice.call(arguments), dupeObj = {}, result, msg = ""; | |
dupeObj.results = []; | |
var indx = 0, argLen = args.length; | |
for(; indx < argLen; indx++){ | |
searchForDupes(args[indx], dupeObj); | |
} | |
result = getWordWithMostDupes(dupeObj); | |
msg = "The word with the most number of duplicate letters is "+result.word+ | |
" with a total of "+result.totalDupes+" duplicate letters."; | |
return msg; | |
//for every word | |
function searchForDupes(word, dObj){ | |
var dupeCollectionObj = {}, obj = {}, wrdArr = word.split(""); | |
obj.word = word; | |
dObj.results.push(obj); | |
//check to see if each letter in current word is a duplicate | |
var x = 0; len = wrdArr.length; | |
for(; x < len; x++){ | |
isDupe(wrdArr[x], dupeCollectionObj); | |
} | |
obj.totalDupes = calculateTotalDupes(dupeCollectionObj); | |
} | |
//for every letter | |
function isDupe(letter, obj){ | |
if(obj.hasOwnProperty(letter)){ | |
obj[letter] += 1; | |
} else { | |
obj[letter] = 1; | |
} | |
} | |
//tally up dupes | |
function calculateTotalDupes(obj){ | |
var totalDupes = 0; | |
for(var prop in obj){ | |
if(obj[prop] > 1){ | |
totalDupes += obj[prop]; | |
} | |
} | |
return totalDupes; | |
} | |
//compare words to get the most dupes | |
function getWordWithMostDupes(obj){ | |
var dupeCounter = 0, len = obj.results.length, i = 0, objWithTheMostDupes; | |
for(; i < len; i++){ | |
if(obj.results[i].totalDupes > dupeCounter){ | |
dupeCounter = obj.results[i].totalDupes; | |
objWithTheMostDupes = obj.results[i]; | |
} | |
} | |
return objWithTheMostDupes; | |
} | |
}; | |
console.log(compareNumOfDupes("applebees", "supaadupa", "busybees")); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment