javascript - Jquery의 inArray 메소드는 객체 판단을 지원하지 않습니까?
漂亮男人
漂亮男人 2017-05-19 10:23:32
0
3
995

배열 요소가 숫자나 문자열인 경우에는 작동하지만 객체인 경우에는 작동하지 않습니다

漂亮男人
漂亮男人

모든 응답(3)
Ty80

js의 객체는 참조 유형 값이며, 두 객체의 비교는 참조된 메모리 주소의 비교입니다. 다음 코드와 같습니다:

으아아아

이 두 객체는 ​​동일한 것처럼 보이지만 힙 메모리에 있는 서로 다른 객체를 참조하므로 동일하지 않습니다.

inArray의 구현은 배열을 순회하여 배열의 각 항목을 대상 값과 비교하고, 같으면 인덱스 값을 반환하고, 같지 않으면 -1을 반환해야 합니다. 위의 이유로 인해 참조 값은 ​​별도로 선언된 두 개체가 동일하지 않으므로 -1이 반환됩니다.

阿神

일반적으로 이렇게 이해하면 배열은 객체이지만 객체가 반드시 배열은 아닙니다. inArray는 배열에서 작동합니다

習慣沉默

소스 코드에서는 isArray: Array.isArray가 사용됩니다. 내부에 객체를 포함할 수도 있지만 외부 레이어는 []이어야 합니다.

으아아아
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿