Javascript 에서 변수 가 배열 인지 대상 인지 판단 합 니 다(array 또는 object)
2528 단어 자 바스 크 립 트 변수arrayobject
// Real array
var my_array = [];
// Imposter! !
var my_object = {};
my_object.length = 0;
// Potentially faulty
function is_this_an_array(param) {
if (typeof param === 'object' && !isNaN(param.length)) {
console.log('Congrats, you have an array!');
}
else {
console.log('Bummer, not an array');
}
}
// Works
is_this_an_array(my_array);
// Works, but is incorrect ,
is_this_an_array(my_object);
2.이 질문 에 대답 하 는 또 다른 답 은 더욱 은밀 한 방법 으로 toString()방법 으로 이 변 수 를 그 유형 을 대표 하 는 string 으로 바 꾸 는 것 입 니 다.이 방법 은 진정한 array 에 대해 가능 합 니 다.매개 변수 대상 이 string 으로 전 환 될 때[object Argument]를 되 돌려 주면 실패 합 니 다.또한 디지털 길이 속성 을 가 진 object 클래스 도 실패 합 니 다.
// Real array
var my_array = [];
// Imposter! !
var my_object = {};
my_object.length = 0;
// Rock solid ( )
function is_this_an_array(param) {
if (Object.prototype.toString.call(param) === '[object Array]') {
console.log('Congrats, you have an array!');
}
else {
console.log('Bummer, not an array');
}
}
// Works
is_this_an_array(my_array);
// Not an array, yay! (array)!
is_this_an_array(my_object);
3.그 밖 에 신뢰 할 수 없 는 다 중 프레임 워 크 DOM 환경 에서 인 스 턴 스 of 는 완벽 하고 적합 한 조작 입 니 다.확장 읽 기:"Instanceof Considered Harmful..."http://perfectionkills.com/instanceof-considered-harmful-or-how-to-write-a-robust-isarray
var my_array = [];
if (my_array instanceof Array) {
console.log('Congrats, you have an array!');
}
4.Javascript 1.8.5(ECMAScript 5)에 대해 변수 이름.isArray()는 이 목적 을 실현 할 수 있 습 니 다.https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/isArray
var my_array = [];
if (Array.isArray(my_array)) {
console.log('Congrats, you have an array!');
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Go언어콩지식(1)콩 지식 Go 언어에는 슬라이스라는 개념이 있습니다. 슬라이스는 값 형식이 아니라 참조 형식의 데이터입니다. 슬라이스는 값 형식의 Array를 참조합니다. 슬라이스를 확장하려면 append 메서드를 사용합니다. 슬라...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.