머쓱이는 프로그래머스에 로그인하려고 합니다. 머쓱이가 입력한 아이디와 패스워드가 담긴 배열 id_pw와 회원들의 정보가 담긴 2차원 배열 db가 주어질 때, 다음과 같이 로그인 성공, 실패에 따른 메시지를 return하도록 solution 함수를 완성해주세요.
function solution(id_pw, db) {
// 첫 번째 방법
const result = db.filter((id) => id[0] === id_pw[0]);
if (result.length !== 0) {
if (result[0][1] === id_pw[1]) return 'login';
else return 'wrong pw';
} else return 'fail';
}
function solution(id_pw, db) {
// 두번째 방법
const [id, pw] = id_pw;
const new_db = new Map(db);
return new_db.has(id)
? new_db.get(id) === pw
? 'login'
: 'wrong pw'
: 'fail';
}
기존에는 filter를 이용해서 id_pw와 동일한 것중에 pw가 같은게 있는지 비교했다. 이후 다른 사람의 풀이를 봤을 때 map을 이용해서 key와 value 형태로 비교한 방법이 있었는데, 이 방법이 깔끔하고 보기에 좋아서 따로 기록해두었다.