anagramGrouper
by Abdul Ahmad
JavaScript
var words = ['cat', 'hap', 'fat', 'tac', 'pah', 'hpa', 'atf', 'tca', 'cta'];
function groupAnagrams(wordArray) {
var anagramMap = {};
for(var i = wordArray.length - 1; i > -1; i--) {
var word = wordArray[i];
var sortedWord = sortWordAlphabetically(word);
if(anagramMap[sortedWord]) {
anagramMap[sortedWord].push(word);
} else {
anagramMap[sortedWord] = [word];
}
}
console.log(anagramMap);
}
function sortWordAlphabetically(word) {
var charArray = word.split('');
var sorted = charArray.sort();
return sorted.join('');
}
groupAnagrams(words);