function findMissingLetter(array){
let missingLetter = ""
const finding = array.reduce((acc,cur,idx)=>{
if(idx>=1){
if(acc.charCodeAt()===cur.charCodeAt()-1){
return cur
}else{
missingLetter = String.fromCharCode(cur.charCodeAt()-1);
return cur
}
}
})
return missingLetter
}
reduce 문으로 전요소와 현재요소를 쭉 비교해가면서 아스키코드가 없는 부분에서 missingLetter
에 현재요소의 아스키코드 -1 의값을 가지는 문자를 저장했다.
function findMissingLetter(array) {
let first = array[0].charCodeAt(0)
for (let i = 1; i < array.length; i++) {
if (first + i !== array[i].charCodeAt(0)) {
return String.fromCharCode(first + i)
}
}
throw new Error("Invalid input")
}
방식은 비슷했다.
function anagrams(word, words) {
const sorting = word => word.split('').sort().join('');
const sortedWord = sorting(word)
return words.filter( w => sortedWord === sorting(w));
}
문자열을 정렬하고, 같은지 여부를 확인하는 코드다. 처음부터 맞게풀었는데 결과화면이 답이틀렸다는줄알고 30분넘게 고민한 내가 멍청했다. 어쩐지 아무리생각해도맞는데..
처음에는 for문을 이용하여 리스트 각 요소마다 체크하게끔 반복문을 돌렸다. 틀린줄 알고 이것저것 알아보다가 filter()
함수를 이용하면 더욱 쉽게 갈 수 있었다.
Array.prototype.filter()
는 인자로 넘겨진 함수의 반환값을 true
인 요소들로만 이루어진 배열을 만들어준다.