JavaScript는 객체가 array_javascript 팁인지 확인합니다.
이 기사에서는 객체가 배열인지 확인하는 세 가지 JavaScript 방법을 공유합니다.
1. 유형
가장 먼저 생각해 볼 것은 데이터 유형을 감지하기 위해 typeof를 사용하는 것이지만 Function, String, Number, Undefine 등과 같은 기본 유형의 경우 typeof를 사용하여 감지할 수 있습니다. 다음과 같습니다:
function test(){} console.log(typeof 1); // number console.log(typeof test); // function console.log(typeof "yunxi"); // string console.log(typeof undefined); // undefined
그러나 배열이나 정규 표현식의 경우 typeof를 사용하여 감지하는 것은 만족스럽지 않습니다. 왜냐하면 배열이나 정규 표현식을 감지하면 다음 코드에 표시된 것처럼 반환된 유형이 객체가 되기 때문입니다.
console.log(typeof []); // object console.log(typeof /\d+/g); // object
2.인스턴스
이를 통해 객체가 배열의 인스턴스인지 여부를 감지하기 위해 objectof를 사용하는 것을 쉽게 생각할 수 있습니다. 이 감지는 배열인 경우 true를 반환하고, 그렇지 않으면 false를 반환합니다. at it again 배열인지 여부를 감지하는 위의 코드는 다음과 같습니다.
console.log([] instanceof Array); // true console.log(/\d+/g instanceof Array); // false
위에서 볼 수 있듯이, instanceof를 사용하면 실제로 배열 요소인지 확인할 수 있습니다.
3. 생성자 속성
자바스크립트에서 각 객체에는 생성자 속성이 있는데, 이는 알 수 없는 객체의 유형을 결정하는 등 객체를 초기화하는 생성자를 참조하므로 다음과 같은 메소드를 작성할 수 있으며, 코드는 다음과 같습니다.
function isArray(obj) { return typeof obj == 'object' && obj.constructor == Array } // 测试demo console.log(isArray([])); // true var a = {"a":1}; console.log(isArray(a)); // false var b = [1,2,3]; console.log(isArray(b)); // true console.log(isArray(/\d+/g));// false
위에서 볼 수 있듯이 isArray 메소드를 호출하여 배열 요소인지 여부를 확인할 수도 있습니다.
이제 두 번째와 세 번째 점에 대해 각각 instanceof 메서드와 생성자 속성을 사용하면 배열인지 여부를 확인할 수 있는 것으로 보이지만 페이지에서 배열을 사용할 때 십자가를 사용할 때와 같은 예외도 있습니다. -frame iframe.은 서로 다른 iframe에서 생성된 배열이 프로토타입 속성을 서로 공유하지 않기 때문에 실패합니다. 다음 코드 테스트를 통해 확인할 수 있습니다.
var iframe = document.createElement('iframe'); document.body.appendChild(iframe); xArray = window.frames[window.frames.length-1].Array; var arr = new xArray("1","2","3","4","5"); //这个写法IE下是不支持的,标准浏览器firefox,chrome下有 console.log(arr); // 打印出 ["1", "2", "3", "4", "5"] console.log(arr instanceof Array); // false console.log(arr.constructor === Array); // false
Object.prototype.toString.call() 메소드 를 사용할 수 있음을 알 수 있습니다. 객체가 배열인지 확인하려면 다음 코드를 사용하세요.
function isArray(obj) { return Object.prototype.toString.call(obj) == '[object Array]'; } // 代码调用 console.log(isArray([])); // true console.log(isArray([1,2,3])); // true var iframe = document.createElement('iframe'); document.body.appendChild(iframe); xArray = window.frames[window.frames.length-1].Array; var arr = new xArray("1","2","3","4","5"); console.log(arr); // ["1","2","3","4","5"] console.log(isArray(arr)); // true

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PHP 배열에서 중복 요소를 제거하기 위해 foreach 루프를 사용하는 방법은 다음과 같습니다. 배열을 순회하고 요소가 이미 존재하고 현재 위치가 첫 번째 항목이 아닌 경우 삭제합니다. 예를 들어, 데이터베이스 쿼리 결과에 중복된 레코드가 있는 경우 이 방법을 사용하면 이를 제거하고 중복된 레코드가 없는 결과를 얻을 수 있습니다.

PHP에서 배열을 깊게 복사하는 방법에는 json_decode 및 json_encode를 사용한 JSON 인코딩 및 디코딩이 포함됩니다. array_map 및 clone을 사용하여 키와 값의 전체 복사본을 만듭니다. 직렬화 및 역직렬화를 위해 직렬화 및 역직렬화를 사용합니다.

PHP 배열 키 값 뒤집기 방법의 성능 비교는 array_flip() 함수가 대규모 배열(100만 개 이상의 요소)에서 for 루프보다 더 나은 성능을 발휘하고 시간이 덜 걸리는 것을 보여줍니다. 키 값을 수동으로 뒤집는 for 루프 방식은 상대적으로 시간이 오래 걸립니다.

MySQL 쿼리 결과 배열을 객체로 변환하는 방법은 다음과 같습니다. 빈 객체 배열을 만듭니다. 결과 배열을 반복하고 각 행에 대해 새 개체를 만듭니다. foreach 루프를 사용하여 각 행의 키-값 쌍을 새 개체의 해당 속성에 할당합니다. 개체 배열에 새 개체를 추가합니다. 데이터베이스 연결을 닫습니다.

PHP의 array_group_by 함수는 키 또는 클로저 함수를 기반으로 배열의 요소를 그룹화하여 키가 그룹 이름이고 값이 그룹에 속한 요소의 배열인 연관 배열을 반환할 수 있습니다.

PHP에서 배열 전체 복사를 수행하는 가장 좋은 방법은 json_decode(json_encode($arr))를 사용하여 배열을 JSON 문자열로 변환한 다음 다시 배열로 변환하는 것입니다. unserialize(serialize($arr))를 사용하여 배열을 문자열로 직렬화한 다음 새 배열로 역직렬화합니다. RecursiveIteratorIterator를 사용하여 다차원 배열을 재귀적으로 순회합니다.

다차원 배열 정렬은 단일 열 정렬과 중첩 정렬로 나눌 수 있습니다. 단일 열 정렬은 array_multisort() 함수를 사용하여 열별로 정렬할 수 있습니다. 중첩 정렬에는 배열을 순회하고 정렬하는 재귀 함수가 필요합니다. 실제 사례로는 제품명별 정렬, 판매량 및 가격별 복합 정렬 등이 있습니다.

PHP에서 배열은 순서가 지정된 시퀀스이며 요소는 인덱스로 액세스됩니다. 객체는 new 키워드를 통해 생성된 속성과 메서드가 있는 엔터티입니다. 배열 액세스는 인덱스를 통해 이루어지며, 객체 액세스는 속성/메서드를 통해 이루어집니다. 배열 값이 전달되고 객체 참조가 전달됩니다.
