Coding Test/JavaScript
[Javascript] (프로그래머스 level 0) 로그인 성공?
Chaedie
2022. 10. 20. 10:52
728x90
[Javascript] (프로그래머스 level 0) 로그인 성공?
💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다.
내 풀이
function solution(id_pw, db) {
for (let i = 0; i < db.length; i++) {
let userInfo = db[i];
if (userInfo[0] === id_pw[0]) {
let loginResult = id_pw[1] === userInfo[1] ? 'login' : 'wrong pw';
return loginResult
}
}
return 'fail'
}
- Array.forEach 또는 Array.filter()로 풀려고 했으나, 그럼 로그인 정보를 찾은 뒤에도 쓸데없이 배열 전체를 순회해야한다는 단점이 있어서 for문을 사용해서 값을 찾았습니다.
- 하지만 다른 사람의 풀이를 보고 Array.find()라는 메서드를 알게 되었습니다.
다른 사람 풀이 참고한 풀이
function solution(id_pw, db) {
let user = db.find(([id]) => id === id_pw[0]);
if (user) {
return user[1] === id_pw[1] ? 'login' : 'wrong pw';
}
return 'fail'
}
- Array.find()를 사용하면 위 코드와 같이 엄청 깔끔하게 해결이 가능합니다.
- Array.find()는 콜백 함수의 조건을 만족 하는 첫 값을 반환합니다.
- 그래서 user는 db에서 userId가 일치하는 [userId, userPw] 로 반환됩니다.
- 이 배열을 이용하면 로그인 정보가 일치한지 확인이 가능합니다.
배운 점, 느낀 점
- 오늘 ! 정말! 좋은 ! 메스드를 알게 되었네요!