function solution(spell, dic) {
var answer = 0;
for(let j = 0;j<dic.length;j++){
let chk = 0
for(let i =0;i<spell.length;i++){
if(dic[j].includes(spell[i])){
chk++;
}
}
if(chk == spell.length) {
answer = 1;
return answer
} else {
answer = 2;
}
}
return answer;
}
이중 포문을 이용해 주어진 단어 사전 dic의 배열을 돌고 그 배열이 spell 요소만큼 for문을 다시 돌며 spell 요소를 가지고 있을경우 chk 변수를 ++ 해주고 마지막에 chk 와 spell의 길이가 같다면 1을 리턴해주는 방식으로 문제에 접근했다.
function solution(p, d) {
return d.some(s => p.sort().toString() == [...s].sort().toString()) ? 1 : 2;
}
some() 메서드는 처음 알았다. some() 메서드는 배열안의 어떤 요소라도 주어진 판별 함수를 하나라도 통과하는지 테스트 한다. 만약 배열에서 주어진 함수가 true를 반환하면 true를 반환한다.
위 문제풀이는 주어진 사전 단어 배열을 순회하며 sort로 순서를 정렬하고 하나라도 같은것이 있으면 1을 리턴하고 아니면 2를 리턴하는 방법이다. some() 메서드와 sort() 메서드를 사용해 간단하게 풀 수 있는게 대단하다고 생각하고... 오늘도 하나 더 배웠다.