id_pw
는 아이디와 패스워드가 들어있는 배열 (length: 2)db
는 회원정보배열이 들어있는 배열 (원소형태 : [아이디, 패스워드])id
는 소문자+숫자 / 1 ~ 15pw
는 숫자 / 1 ~ 6id
,pw
둘 다db
에 있다면, 'login' 반환id
는 있는데pw
가 없다면, 'wrong pw' 반환id
가 없다면, 'fail' 반환
문제 이해는 금방 했는데, 1시간 반 씨름함 ^^
풀기는 3-40분만에 푼 것 같은데, return
을 계속 console.log
로 해주고 있어서 계속 실패가 떴었다 ... 어쩐지 ...
분명 runJS에서는 잘 출력되긴 되는데, return
이 console.log
인 게 뭔가 헐렁한 느낌이 있었음.
반환값은 무조건 변수에 할당해서 return을 변수로 해줄 것 !!!!
역시나 탄탄하지 못한 기초의 빈 틈에 빠지고 말았다
function solution(id_pw, db) {
const res = db.find(el => el[0] === id_pw[0]);
let result = '';
res == undefined ? result = 'fail' :
res[1] === id_pw[1] ? result = 'login' : result = 'wrong pw'
return result;
}
result
에 string
을 할당하지 않고 계속 console.log('fail')
이렇게 해주고 있었음 ㅜㅜ
아무튼 12점이나 얻었다 !!! 잘 풀었나보다 쿠쿸킼켘콬 😎
이 문제는 풀이 방법이 되게 다양했다.
나는 find()
메서드를 사용했다.
내 기준, 더 간단하고 쉬운 풀이를 참고해보겠다.
function solution(id_pw, db) {
const [ userId, userPw ] = id_pw;
for (const [ dbId, dbPw ] of db) {
if (userId === dbId && userPw === dbPw) return "login";
else if (userId === dbId && userPw !== dbPw) return "wrong pw";
}
return "fail";
}
나는 잘 안 써 본 for of
문을 사용하셨다.
그리고 무엇보다, 저렇게 배열 구조분해할당 좀 써먹고 싶은데, 많이 써보질 않아서 생각이 안난다. ㅜㅜ
괜춘티비 ~ 한번 두번 보다 보면 쓰게될테야!
아무턴가네 코드가 직관적이고 깔끔해보인다. 이해하기도 쉽다. (중요)
🤔 return
자체를 string
자체로 할 수도 있군
암튼 꽤~~나 헷갈리는 문제였다.
function solution(id_pw, db) {
const res = db.find(el => el[0] === id_pw[0]);
let result = '';
res == undefined ? result = 'fail' :
res[1] === id_pw[1] ? result = 'login' : result = 'wrong pw'
return result;
}
function solution(id_pw, db) {
const [id, pw] = id_pw;
const res = db.find(el => el[0] === id);
return res ? res[1] === pw ? 'login' : 'wrong pw' : 'fail'
}
와... 뤼팩터륑하니 훨씬 간결 ...
끗!