반응형
Notice
Link
스택큐힙리스트
어떻게 JavaScript에서 변수가 배열인지 확인할 수 있을까요? 본문
반응형
자바스크립트에서 변수가 배열인지 확인하는 방법은 무엇인가요?
if (variable.constructor == Array)
답변 1
이 방법은 첫 번째 예제의 속도의 1/3 정도로 실행됩니다. 여전히 꽤 견고하며, 코드의 가독성을 중요시하는 경우 더 깔끔하게 보입니다. 숫자를 확인하는 경우 variable instanceof Number
는 항상 false
를 반환하므로 유의하십시오. 업데이트: instanceof
는 이제 속도의 2/3 올랐습니다!
그러니 한 번 더 업데이트입니다
Object.prototype.toString.call(variable) === '[object Array]';
배열을 확인하는 데 가장 느립니다. 하지만 이것은 찾고자 하는 모든 타입에 대한 한 번에 처리할 수 있는 솔루션입니다. 하지만 배열을 찾고자 하는 경우 위에서 속도가 가장 빠른 방법을 사용하십시오.
또한 몇 가지 테스트를 실행했습니다: http://jsperf.com/instanceof-array-vs-array-isarray/35 여러분은 즐겁게 확인해보세요.
노트: @EscapeNetscape가 jsperf.com이 다운되어 다른 테스트를 만들었습니다. http://jsben.ch/#/QgYAV 나는 jsperf가 다시 온라인 상태가 될 때 원래의 링크가 남아있을 수 있도록 하고 싶었습니다.
답변 2
변수가 배열인지 아닌지를 확인하는 방법은 JavaScript에서 다양한 방식으로 구현할 수 있습니다. 이 문서에서는 세 가지 주요 방법을 알려드리겠습니다.첫 번째로, Array.isArray() 메서드를 사용하여 변수가 배열인지 확인할 수 있습니다. 이 메서드는 주어진 변수가 배열이면 true를 반환하고, 그렇지 않으면 false를 반환합니다. 예를 들어, 다음과 같이 사용할 수 있습니다.
```javascript
var myArray = [1, 2, 3];
if (Array.isArray(myArray)) {
console.log(변수는 배열입니다.);
} else {
console.log(변수는 배열이 아닙니다.);
}
```
두 번째 방법으로, JavaScript는 변수의 constructor 속성을 통해 변수의 타입을 확인할 수 있습니다. 배열은 JavaScript의 내장 객체이므로, 배열의 constructor는 Array입니다. 따라서 변수의 constructor를 확인하여 배열인지 아닌지를 판단할 수 있습니다. 예를 들어, 다음 코드를 사용할 수 있습니다.
```javascript
var myArray = [1, 2, 3];
if (myArray.constructor === Array) {
console.log(변수는 배열입니다.);
} else {
console.log(변수는 배열이 아닙니다.);
}
```
마지막으로, instanceof 연산자를 사용하여 변수의 인스턴스 유형을 확인할 수도 있습니다. 인스턴스 연산자는 변수가 특정 객체의 인스턴스인지를 판단합니다. 따라서 변수 instanceof Array를 사용하여 배열인지 확인할 수 있습니다. 다음과 같이 사용할 수 있습니다.
```javascript
var myArray = [1, 2, 3];
if (myArray instanceof Array) {
console.log(변수는 배열입니다.);
} else {
console.log(변수는 배열이 아닙니다.);
}
```
이 세 가지 방법 중 하나를 사용하여 변수가 배열인지 아닌지를 확인할 수 있습니다. 이렇게 함으로써 JavaScript에서 효과적으로 배열을 확인할 수 있으며, 필요한 로직을 실행할 수 있습니다.
반응형
Comments