❌ 아직 해결되지 않은 궁금증이 있는 게시물
문제 설명
각에서 0도 초과 90도 미만은 예각, 90도는 직각, 90도 초과 180도 미만은 둔각 180도는 평각으로 분류합니다. 각 angle이 매개변수로 주어질 때 예각일 때 1, 직각일 때 2, 둔각일 때 3, 평각일 때 4를 return하도록 solution 함수를 완성해주세요.
# 내가 처음 짠 코드
function solution(angle) {
if(angle>0 && angle < 90){
return 1;
}else if (angle == 90) {
return 2;
} else if (angle >90 && angle < 180){
return 3;
} else if (angle == 180){
return 4;
}
}
# 다른 사람들의 번뜩이는 코드 방식(1) ❌
function solution(angle) {
return [0, 90, 91, 180].filter(x => angle>=x).length;
}
Q : angle이 0보다 크거나 같으면 length인 1
angle이 90보다 크거나 같으면 length 인 2 ( 근데 그러면 170이 2, 3, 4 다 나올 수 있지 않나??)
angle이 91보다 크거자 같으면 length인 3
angle이 180보다 크거나 같으면 length인 4??
✔️사용한 함수
① filter ( )
filter함수는 배열의 각 요소를 순회하며 callback함수를 실행하며 조건에 맞는 요소만을 갖는 배열을 반환합니다.
🔻arr.filter ( callback (element [, index[, array] ] ) [, thisArg] )
1. callback function
각 요소의 조건을 판단하는 함수 입니다.
true를 반환하면 요소를 유지하고 false를 반환하면 제외합니다.
ⓐ element : 배열의 현재 요소
ⓑ index (Optional) : 배열의 현재 요소의 인덱스
ⓒ array(Optional) : 호출한 배열
❌ const check = 적용할 배열.filter( 함수 이름 => 특정 조건 ) ;
2. thisArg(Optional)
callback함수를 실행할 때 'this'로 사용되는 값
3. 반환값
배열을 순서대로 각 요소에 대해 callback 함수를 수행하고 true인 요소들만 이루어진 new 배열을 반환합니다.
const numbers = [1, 2, 3, 4, 5];
const filter1 = numbers.filter(currentNumber => currentNumber%2 ===1);
console.log(filter1); // [ 1, 3, 5] 조건에 맞추어 홀수만 출력
🖍️ 더 나아가기 🖍️
①
✳️참고 링크 :
※ 풀이 날짜 ※
2022.12.23
'코딩 테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 입문] (0) | 2023.04.28 |
---|---|
❌[JS] 배열 평균 값 구하기 : reduce(), for..of문 (0) | 2023.01.14 |
[JS] 짝수 구하기 : (0) | 2022.12.24 |
[JS] 나이 출력 : Date( ).getFullYear( ) (0) | 2022.12.11 |
[JS] 배열 두 배 만들기 : map() , push (), apply( ) (0) | 2022.12.11 |