자바스크립트

[javascript]fillter - 각도기(프로그래머스)

슈크림 붕어빵 2023. 7. 6. 02:28

해당 문제, 각 1,2,3,4 반환

function solution(angle) {
    var answer = 0;
    if(angle<90)
        answer = 1;
    else if (angle==90)
        answer = 2;
    else if (angle<180)
        answer=3;
    else if (angle==180)
        answer = 4;
    return answer;
}

나는 이렇게 하나하나 짰으나, 신선하고 간결한 있어서 가져와봤다.

 

function solution(angle) {
    return [0, 90, 91, 180].filter(x => angle>=x).length;
}
  1. .filter(x => angle >= x)는 주어진 배열에서 angle보다 작거나 같은 값을 찾기 위해 filter() 메서드를 사용합니다. filter() 메서드는 배열 요소를 순회하면서 주어진 조건을 만족하는 요소만을 필터링하여 새로운 배열을 반환합니다.
  2. .length는 filter() 메서드를 통해 반환된 새로운 배열의 길이, 즉 주어진 각도보다 작거나 같은 값의 개수를 반환합니다.
array.filter(조건) 사용법

array.filter(x=>a>=x)는array 배열에서 a보다 작다는 조건을 만족하는 요소만을 필터링하여 새로운 배열을 만든다.

 

즉 위의 코드는 90이하인 경우 0만이 해당하여 요소는 1개이므로 1반환, 90인 경우 0,90 두가지가 해당하여 2반환, 90<x<180이하인 경우 [0,90,91]이 반환되어 3반환 180인 경우 4 반환이다.