Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript 배열에 정수 값이 포함되어 있는지 확인하는 방법

문제 이해하기

요소들을 담고 있는 배열을 입력으로 받는 JavaScript 함수를 작성해야 합니다. 이 함수의 역할은 배열 안에 정수, 즉 number 타입의 값이 하나라도 포함되어 있는지 검사하는 것입니다.

정수 값이 존재하면 true를, 존재하지 않으면 false를 반환하면 됩니다.

구현 접근 방식

핵심은 Array.prototype.find() 메서드를 활용하는 것입니다. find()는 전달된 콜백 함수의 조건을 만족하는 첫 번째 요소를 반환하며, 조건을 만족하는 요소가 없으면 undefined를 반환합니다.

여기서는 각 요소의 타입이 'number'인지 확인하는 콜백 함수를 전달합니다. 주의할 점은 "123"처럼 따옴표로 감싸진 숫자는 typeof 연산 결과가 'string'이므로 정수로 간주되지 않는다는 것입니다.

예제 코드

const arr = ["123", "", "21345", "90"];
const findInteger = (arr = []) => {
    const isInteger = num => {
        return typeof num === 'number';
    };
    const el = arr.find(isInteger);
    return !!el;
};
console.log(findInteger(arr));

실행 결과

콘솔에 출력되는 결과는 다음과 같습니다.

false

코드 설명

위 예제에서 배열 arr의 모든 요소는 문자열입니다. 따라서 typeof num === 'number' 조건을 통과하는 요소가 없어 find()undefined를 반환하고, 이중 부정 연산자 !!를 통해 최종 결과가 false가 됩니다.

반면 배열에 숫자 타입의 값이 하나라도 섞여 있다면 결과는 달라집니다. 예를 들어 ["123", 45, "90"]처럼 숫자 45가 포함된 경우, find()가 해당 값을 발견하여 함수는 true를 반환합니다.