>  Q&A  >  본문

javascript - Jquery의 inArray 메소드는 객체 판단을 지원하지 않습니까?

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

漂亮男人漂亮男人2711일 전897

모든 응답(3)나는 대답할 것이다

  • PHP中文网

    PHP中文网2017-05-19 10:25:32

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

    으아아아

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

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

    회신하다
    0
  • 阿神

    阿神2017-05-19 10:25:32

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

    회신하다
    0
  • 習慣沉默

    習慣沉默2017-05-19 10:25:32

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

    으아아아

    회신하다
    0
  • 취소회신하다