- [JS] 배열인지 아닌지 판단하는 메서드 Array.isArray()2024년 05월 03일
- 주사위 clice
- 작성자
- 2024.05.03.:36
반응형입력값이 배열인지 아닌지 판단하려면 어떻게 해야 할까?
기본적으로 다음과 같이 if문을 쓰고 여러가지 조건을 붙이는 생각을 할것이다
<Stereotype>
1. typeof =='object'
배열의 type은 기본적으로 'object'로 출력된다
그래서 typeof연산자를 이용해 'object'인지 아닌지 판단한다
그렇지만 이러면 일반적인 객체도 type이 object이기 때문에 이것만으로 배열을 골라낼 수는 없다
따라서 2번,3번 조건들로 object값을 가지는 다른 객체들 중에 배열이 아닌 것들의 특징을 이용해 배열을 골라내보자
2. inputArray !== null
JavaScript에서 null은 객체이며, 배열도 객체이기 때문에, null을 제외하는 조건을 추가해야 한다.
그래서 !==null 조건으로 inputArray가 null이 아닌 경우를 제외한다
3. inputArray.constructor === Array
JavaScript의 모든 객체는 생성자(constructor)를 가지며, 배열 역시 그 예외는 아니다.
배열 객체의 생성자는 Array이다.
따라서 .constructor로 객체의 생성자가 Array인지 확인하여 배열 여부를 최종적으로 결정한다
최종 결과
function isThisAnArrayOrNot(inputValue) { // typeof 연산자를 사용하여 배열 여부를 확인한다 if (typeof inputValue === 'object' && inputArray !== null && inputValue.constructor === Array) { return true; } else { return false; } } console.log(isThisAnArrayOrNot([1, 2, 3])); // 배열이므로 true console.log(isThisAnArrayOrNot(3)); // 배열이 아니므로 false
Array.isArray()
위 과정은 복잡하고 조건도 복잡하기 때문에
이 과정을 하나로 끝낼 수 있는 메서드 isArray()가 있다
이 메서드를 사용할 때 주의해야 할 점은 Array.isArray를 모두 다 써줘야 한다는 점이다
a.isArray()처럼 Array자리에 내가 만든 배열의 이름을 입력하면 안된다!
반응형'프론트 > Javascript Typescript' 카테고리의 다른 글
[JS]배열의 평균값 -프로그래머스120811 sort 함수의 동작 원리에 대해 (0) 2024.05.21 [JS]배열의 평균값 -프로그래머스120817 reduce함수 (0) 2024.05.20 [JS] 비구조화 할당(구조분해할당) 쓰는 이유와 사용 방법 (0) 2024.04.30 [Javascript] 동적 타입 언어 자바스크립트 자료형 변환: '문자'와 숫자의 사칙연산 (0) 2024.02.22 [Javascript] hasOwnProperty 함수 알아보자 (크라임씬 법원 살인사건에서 다잉메세지로 범인 찾기) (0) 2024.02.21 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)