Heim > Artikel > Backend-Entwicklung > Wie überprüfe ich, ob ein Element in einem Array in JavaScript vorhanden ist?
Obwohl JavaScript eine weit verbreitete Programmiersprache ist, fehlt ihr die in PHP enthaltene Funktion in_array(). Es gibt jedoch mehrere JavaScript-basierte Lösungen, die eine vergleichbare Funktionalität bieten.
inArray von jQuery
jQuery bietet eine inArray-Funktion, die dem Grundprinzip von in_array() von PHP folgt:
function inArray(needle, haystack) { var length = haystack.length; for (var i = 0; i < length; i++) { if (haystack[i] == needle) return true; } return false; }
Diese Implementierung prüft effizient, ob ein bestimmter Wert innerhalb der angegebenen Werte vorhanden ist array.
Array.indexOf von Prototype
Die Array.indexOf-Funktion von Prototype ähnelt inArray von jQuery, unterstützt jedoch zusätzlich die Suche innerhalb verschachtelter Arrays (im Gegensatz zu inArray von jQuery).
function inArray(needle, haystack) { return haystack.indexOf(needle) !== -1; }
Diese Funktion ist vielseitiger und kann komplexe Arrays verarbeiten Strukturen.
Benutzerdefinierte Implementierung
Wenn Sie eine native JavaScript-Lösung bevorzugen, können Sie eine benutzerdefinierte inArray-Funktion wie folgt erstellen:
function inArray(needle, haystack) { return haystack.some((item) => { if (Array.isArray(item)) { return inArray(needle, item); } else { return item === needle; } }); }
Dies Die Implementierung unterstützt sowohl verschachtelte Arrays als auch strenge Gleichheitsprüfungen.
Hinweis: Diese JavaScript-basierten Lösungen Replizieren Sie das in_array()-Verhalten von PHP in Bezug auf verschachtelte Arrays nicht vollständig. Wenn Sie eine solche Prüfung durchführen müssen, können Sie eine benutzerdefinierte Implementierung wie die im Abschnitt „Benutzerdefinierte“ bereitgestellte verwenden.
Das obige ist der detaillierte Inhalt vonWie überprüfe ich, ob ein Element in einem Array in JavaScript vorhanden ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!