DEV Community

Discussion on: Algorithm 202 (My Interview Question): Grouping Anagrams in 3 Ways

Collapse
 
ebereplenty profile image
NJOKU SAMSON EBERE

Thank you Wojciech. I love your method. It's very clever and coincise. Works perfectly too.

dev-to-uploads.s3.amazonaws.com/i/...

Do you mind explaining what is going on in the reduce() function probably by commenting the code?

Collapse
 
rebusweb profile image
Wojciech Rebis

I thought of reducing array of anagrams to an object which keys will be initial words and values arrays of anagrams from these words.

Thread Thread
 
ganeshshetty195 profile image
Ganesh Shetty

Tried pretty much in the same way

function groupAnagrams(array) {
var reducedObject = array.reduce((acc, cur) => {
var newcur=cur.split('').sort().join('');
if (!acc[newcur]) {
acc[newcur] = [cur]
} else {
acc[newcur] = [...acc[newcur], cur]
}
return acc;
}, {});
return Object.values(reducedObject);
}
console.log(groupAnagrams(["eat", "tea", "tan", "ate", "nat", "bat"]));