Heim >Web-Frontend >js-Tutorial >Wie kann ich effizient feststellen, ob ein Wert in einem JavaScript-Array vorhanden ist?

Wie kann ich effizient feststellen, ob ein Wert in einem JavaScript-Array vorhanden ist?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-07 22:52:13790Durchsuche

How Can I Efficiently Determine if a Value Exists in a JavaScript Array?

Eingehende Untersuchung der Array-Wertbestimmung

In JavaScript kann die Bestimmung, ob ein Element in einem Array vorhanden ist, eine häufige Programmieraufgabe sein. Um dies zu beheben, führen wir eine Array-Iterationstechnik ein.

Die bereitgestellte Funktion:

Array.prototype.contains = function(obj) {
    var i = this.length;
    while (i--) {
        if (this[i] == obj) {
            return true;
        }
    }
    return false;
}

Leider gibt diese Funktion durchweg „false“ zurück. Ein potenzielles Problem liegt im in der if-Anweisung verwendeten Gleichheitsoperator (==), der auf Typzwang und nicht auf strikte Gleichheit prüft. Eine Überarbeitung dieser Zeile in if (this[i] === obj) würde das Problem beheben.

Eine effizientere und präzisere Lösung ist jedoch mit der Dienstprogrammfunktion von jQuery verfügbar:

$.inArray(value, array)

Diese Funktion sucht nach der Position eines bestimmten Werts in einem Array und gibt den Index zurück, wenn er gefunden wird, oder -1, wenn nicht.

Im bereitgestellten Beispiel:

arrValues = ["Sam","Great", "Sample", "High"]
alert(arrValues.contains("Sam"));

Die erwartete Ausgabe wäre bei Verwendung unserer benutzerdefinierten Funktion wahr (nach Korrektur der Gleichheitsprüfung) oder 0 bei Verwendung von jQuerys $.inArray.

Das obige ist der detaillierte Inhalt vonWie kann ich effizient feststellen, ob ein Wert in einem JavaScript-Array vorhanden ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn