> 백엔드 개발 > PHP 튜토리얼 > JavaScript에서 배열에 다른 배열이 포함되어 있는지 확인하는 방법은 무엇입니까?

JavaScript에서 배열에 다른 배열이 포함되어 있는지 확인하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-11-19 20:03:03
원래의
242명이 탐색했습니다.

How to Check if an Array Contains Another Array in JavaScript?

JavaScript에서 배열에 다른 배열이 포함되어 있는지 확인할 수 있나요?

한 배열의 값을 비교하는 PHP의 in_array() 함수와 유사합니다. 또 다른 하나는 JavaScript에는 이에 상응하는 내장 기능이 없습니다.

해결 방법

이러한 격차를 해결하기 위해 널리 사용되는 JavaScript 라이브러리와 유틸리티 패키지는 자체 구현을 제공합니다. jQuery의 $.inArray() 및 Prototype의 Array.indexOf()가 주목할만한 예입니다. jQuery의 구현은 간단합니다.

function inArray(needle, haystack) {
  for (var i = 0; i < haystack.length; i++) {
    if (haystack[i] == needle) return true;
  }
  return false;
}
로그인 후 복사

배열 비교

그러나 PHP의 in_array()는 한 배열이 다른 배열 내에 있는지도 결정한다는 점에 유의하는 것이 중요합니다. Chris와 Alex의 코드는 이 동작을 복제하지 않습니다. 대신 Chris의 코드는 PHP의 array_intersect와 유사하지만 Alex의 코드는 Prototype의 indexOf 공식 버전입니다.

중첩 배열에 대해 PHP의 in_array()를 구현하려면 다음 사용자 정의 함수를 사용할 수 있습니다.

function arrayCompare(a1, a2) {
  if (a1.length != a2.length) return false;
  for (var i = 0; i < a1.length; i++) {
    if (a1[i] !== a2[i]) return false;
  }
  return true;
}
로그인 후 복사

향상된 inArray() 기능:

function inArray(needle, haystack) {
  for (var i = 0; i < haystack.length; i++) {
    if (typeof haystack[i] == 'object') {
      if (arrayCompare(haystack[i], needle)) return true;
    } else {
      if (haystack[i] == needle) return true;
    }
  }
  return false;
}
로그인 후 복사

사용 예

var a = [['p', 'h'], ['p', 'r'], 'o'];

if (inArray(['p', 'h'], a)) {
  alert('ph was found');
}
if (inArray(['f', 'i'], a)) {
  alert('fi was found');
}
if (inArray('o', a)) {
  alert('o was found');
}
로그인 후 복사

출력:

ph was found
o was found
로그인 후 복사

어레이 프로토타입은 의도하지 않은 결과를 초래할 수 있으므로 권장되지 않습니다.

위 내용은 JavaScript에서 배열에 다른 배열이 포함되어 있는지 확인하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿