Können Sie in JavaScript überprüfen, ob ein Array ein anderes enthält?
Ähnlich wie die in_array()-Funktion von PHP, die Werte aus einem Array miteinander vergleicht Zum anderen verfügt JavaScript hierfür nicht über ein integriertes Äquivalent Funktionalität.
Problemumgehungen
Um diese Lücke zu schließen, bieten beliebte JavaScript-Bibliotheken und Dienstprogrammpakete ihre eigenen Implementierungen. Bemerkenswerte Beispiele sind $.inArray() von jQuery und Array.indexOf() von Prototype. Die Implementierung von jQuery ist unkompliziert:
function inArray(needle, haystack) { for (var i = 0; i < haystack.length; i++) { if (haystack[i] == needle) return true; } return false; }
Array-Vergleich
Es ist jedoch wichtig zu beachten, dass in_array() von PHP auch bestimmt, ob sich ein Array in einem anderen befindet. Der Code von Chris und Alex reproduziert dieses Verhalten nicht. Stattdessen ähnelt der Code von Chris dem array_intersect von PHP, während der von Alex die offizielle Version von indexOf von Prototype ist.
Um PHPs in_array() für verschachtelte Arrays zu implementieren, kann die folgende benutzerdefinierte Funktion verwendet werden:
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; }
Erweiterte inArray()-Funktion:
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; }
Beispiel Verwendung
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'); }
Ausgabe:
ph was found o was found
Bitte beachten Sie, dass eine Erweiterung des Array-Prototyps nicht empfohlen wird, da dies unbeabsichtigte Folgen haben kann.
Das obige ist der detaillierte Inhalt vonWie überprüfe ich in JavaScript, ob ein Array ein anderes Array enthält?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!