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] 로 반환됩니다.
- 이 배열을 이용하면 로그인 정보가 일치한지 확인이 가능합니다.
배운 점, 느낀 점
- 오늘 ! 정말! 좋은 ! 메스드를 알게 되었네요!
'Coding Test > JavaScript' 카테고리의 다른 글
[Javascript] (DFS) 깊이 우선 탐색 - 전위 순회, 중위 순회, 후위 순회 (0) | 2022.11.08 |
---|---|
[Javascript] (재귀) 이진수 만들기 (1) | 2022.11.08 |
[Javascript] (프로그래머스 level 0) 연속된 수의 합 (0) | 2022.10.28 |
[Javascript] (프로그래머스 level 0) 특이한 정렬 (0) | 2022.10.24 |
[Javascript] (프로그래머스 level 0) 등수 매기기 (0) | 2022.10.20 |
[Javascript] (프로그래머스 level 0) 치킨 쿠폰 (0) | 2022.10.20 |
[Javascript] (구름 먼데이 챌린지) 1주차 1번 문제 (0) | 2022.10.14 |
[Javascript] (프로그래머스 level 0) 외계행성의 나이 (0) | 2022.10.14 |
댓글