Skip to content

Instantly share code, notes, and snippets.

@fnh
Last active June 13, 2018 22:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fnh/f8a2954c8de8ee0d08ff3515dad98bc5 to your computer and use it in GitHub Desktop.
Save fnh/f8a2954c8de8ee0d08ff3515dad98bc5 to your computer and use it in GitHub Desktop.
function anagramNormalized(str) {
return str.toLocaleLowerCase().split("").sort().join();
}
function isAnagram(a, b) {
return anagramNormalized(a) === anagramNormalized(b);
}
function group(toBeGrouped, grouped = []) {
if (!toBeGrouped.length) {
return grouped;
} else {
let nextGroup = toBeGrouped.filter(element => isAnagram(element, toBeGrouped[0]));
let nextRest = toBeGrouped.filter(element => !isAnagram(element, toBeGrouped[0]));
return group(nextRest, [...grouped, nextGroup]);
}
}
const list = ['Tokyo', 'London', 'Rome', 'Donlon', 'Kyoto', 'Paris'];
console.log(group(list));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment