머쓱이는 프로그래머스에 로그인하려고 합니다. 머쓱이가 입력한 아이디와 패스워드가 담긴 배열 id_pw
와 회원들의 정보가 담긴 2차원 배열 db
가 주어질 때, 다음과 같이 로그인 성공, 실패에 따른 메시지를 return하도록 solution 함수를 완성해주세요.
id_pw | db | result |
---|---|---|
["meosseugi", "1234"] | [["rardss", "123"], ["yyoom", "1234"], ["meosseugi", "1234"]] | "login" |
["programmer01", "15789"] | [["programmer02", "111111"], ["programmer00", "134"], ["programmer01", "1145"]] | "wrong pw" |
["rabbit04", "98761"] | [["jaja11", "98761"], ["krong0313", "29440"], ["rabbit00", "111333"]] | "fail" |
function solution(id_pw, db) {
for (let i = 0; i < db.length; i++){
if (id_pw[0] === db[i][0]) {
if (id_pw[1] === db[i][1]) {
return "login"
}
return "wrong pw"
}
}
return "fail"
}
💡 코드풀이
- 아이디만 일치하는 경우 → login
- 아이디, 비번 모두 일치하는 경우 → wrong pw
- 그 외의 경우 → fail
function solution(id_pw, db) {
const [id, pw] = id_pw;
const map = new Map(db);
console.log(map.get(id))
return map.has(id) ? (map.get(id) === pw ? "login" : "wrong pw") : "fail";
}
💡 코드풀이
- id_pw에서 id와 pw를 구조분해할당으로 가져온다.
- db를 new Map을 통해 map 변수에 할당한다
map = Map {'rardss' => '123', 'yyom' => '1234', 'messeugi' => '1234'}
- map 안에 id_pw에서 구조분해할당으로 가져온 id 값이 없으면(boolean값) -> fail
map.has(id) ? //boolean 값임
- 있을때 -> 해당 id를 get 했을 때 pw === 구조분해할당 pw가 같다면 -> login, 다르다면 wrong pw를 리턴한다.
💡 배울점
- Map을 잘 활용하자