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 중국어 웹사이트의 기타 관련 기사를 참조하세요!