function solution(arr) {
let map = new Map();
for (const word of arr) {
const sorted = word.toLowerCase().split("").sort().join(""); // split(str => arr), join(arr => str)
if (!map.has(sorted)) {
map.set(sorted, word);
}
}
return Array.from(map.values());
}
split(str => arr), join(arr => str)
함수 마지막 줄의 map.values()는 맵의 값을 담은 반복 가능한 객체를 반환하는데,
Array.from은 이 반복 가능한 객체를 배열로 바꿔줍니다.
이 문제에서 키는 문자형이므로 맵 대신 일반적인 객체를 사용할 수도 있습니다.
function solution(arr) {
let obj = {};
for (const word of arr) {
const sorted = word.toLowerCase().split("").sort().join("");
if (!obj[sorted]) {
obj[sorted] = word;
}
}
return Object.keys(obj);
}
console.log(
solution(["nap", "teachers", "cheaters", "PAN", "ear", "era", "hectares"])
);