Überprüfen Sie, ob das Array einen Wert in JavaScript enthält

Nithin Krishnan 12 Oktober 2023
  1. Verwenden der Funktion .indexOf(), um zu überprüfen, ob das Array einen Wert in JavaScript enthält
  2. Verwenden der Funktion .includes(), um zu überprüfen, ob das Array einen Wert in JavaScript enthält
  3. Verwenden der Funktion .find() zum Suchen von Elementen in einem Array in JavaScript
  4. Verwenden der Funktion .filter() zur Suche nach Elementen in einem Array in JavaScript
  5. Verwenden einer einfachen for-Schleife zur Suche nach einem Element
  6. Hinweis
Überprüfen Sie, ob das Array einen Wert in JavaScript enthält

Oft befinden wir uns in der Situation, zu überprüfen, ob das Array einen Wert in JavaScript enthält. Auch wenn die Suchfunktionalität mit einfachen JavaScript-Syntaxen unter Verwendung von Schleifen codiert werden kann, ist es gut, die eingebauten Funktionalitäten, die für die Array-Suche in JavaScript verfügbar sind, deren Verwendung, Rückgabetypen und das Verhalten zu kennen. Es macht unsere Aufgabe viel einfacher, da wir weniger codieren müssen. Die Funktionalität wird mit eingebauten Funktionen effizient und weniger fehleranfällig sein. Sehen wir uns Möglichkeiten an, nach einem Element in einem Array zu suchen.

Verwenden der Funktion .indexOf(), um zu überprüfen, ob das Array einen Wert in JavaScript enthält

Die Funktion .indexOf() ist eine häufig verwendete Funktion in JavaScript. Es funktioniert gut bei der Suche nach einem Element in einem Array oder sogar einem String.

Syntax

indexOf(element, index)

Parameter

Als Parameter wird das zu suchende Element verwendet. Und ein optionaler Parameter, der der Funktion mitteilt, ab welchem ​​Index die Suche gestartet werden muss (beginnend bei 0). Wenn wir einen negativen Wert angeben, bedeutet dies, dass am Ende des Arrays an der angegebenen Position gesucht wird.

Rückgabewert

Die Funktion gibt den Index des Suchelements beginnend bei 0 im Array zurück, wenn sie das Element finden konnte. Andernfalls wird -1 zurückgegeben, was darauf hinweist, dass das Element nicht gefunden werden konnte. Wenn in einem Array mehr als eine Übereinstimmung vorhanden ist, gibt die Funktion .indexOf() den Index der ersten Übereinstimmung zurück.

Browser-Unterstützung

Die Funktion .indexOf() wird für alle gängigen Browserversionen unterstützt.

Verwendung

Die Verwendung der Funktion indexOf() auf einem Array ist wie folgt.

let fruits = ['Apple', 'Mango', 'Pear', 'Peach'];
console.log(fruits.indexOf('Pear'));
console.log(fruits.indexOf('Tomato'))

Ausgabe:

2
-1

Für die Suchfunktion prüfen wir, ob der Rückgabetyp von .indexOf(searchText) grösser als -1 ist. Wenn ja, dann sollte das Suchergebnis true sein, sonst false. Schauen wir uns das gleiche oben besprochene Beispiel an, um zu überprüfen, ob ein Element im Array vorhanden ist.

function isFruit(fruitName) {
  let fruits = ['Apple', 'Mango', 'Pear', 'Peach'];
  if (fruits.indexOf(fruitName) > -1) {
    return true;
  } else {
    return false;
  }
}
isFruit('Pear');
isFruit('Cat');

Ausgabe:

true
false

Verwenden der Funktion .includes(), um zu überprüfen, ob das Array einen Wert in JavaScript enthält

Die Funktion includes() von JavaScript prüft, ob ein bestimmtes Element in einem Array vorhanden ist. Es gibt einen booleschen Wert zurück. Daher eignet es sich am besten für if-Bedingungsprüfungen.

Syntax

includes(keyword)
includes(keyword, index)

Parameter

Die Funktion benötigt zwei Parameter. Normalerweise verwenden wir diese Funktion in der Form .includes(searchString). Der Parameter searchString ist das Element, das wir durchsuchen möchten, und der Parameter index bezieht sich auf den Array-Index, ab dem gesucht werden soll. Der Parameter index ist optional.

Rückgabewert

.includes() gibt true zurück, wenn der searchString als Element des Arrays gefunden wird. Wenn nicht gefunden, gibt die Funktion false zurück.

Browser-Unterstützung

Die Funktion .includes() funktioniert in fast allen Webbrowsern außer Internet Explorer. Wenn Ihr Projekt vom IE unterstützt wird, müssen Sie daher möglicherweise die Funktion indexOf() verwenden.

Verwendung

Betrachten wir die Anwendung von includes() in einem Array.

let fruits = ['Apple', 'Mango', 'Pear', 'Peach'];
console.log(fruits.includes('Pear'));
console.log(fruits.includes('Tomato'))

Ausgabe:

true
false

Die Funktion includes() kann direkt in if-Bedingungen verwendet werden, da sie als Ausgabe einen booleschen Wert zurückgibt. Das obige Beispiel kann im bedingten if wie folgt verwendet werden. Beachten Sie jedoch, dass dieser Code im IE möglicherweise nicht funktioniert, da “.includes()” darin nicht unterstützt wird.

function isFruit(fruitName) {
  let fruits = ['Apple', 'Mango', 'Pear', 'Peach'];
  if (fruits.includes(fruitName)) {
    return true;
  } else {
    return false;
  }
}
isFruit('Pear');
isFruit('Cat');

Ausgabe:

true
false

Verwenden der Funktion .find() zum Suchen von Elementen in einem Array in JavaScript

Eine andere Möglichkeit zu überprüfen, ob ein Element in einem Array vorhanden ist, ist die Verwendung der Funktion .find(). Im Gegensatz zu den Funktionen .indexOf() und .includes() nimmt .find() eine Funktion als Parameter und führt sie auf jedem Element des Arrays aus. Es gibt den ersten Wert zurück, der von der Bedingung erfüllt wird, wie in der Parameterfunktion erwähnt.

Syntax

.find((keyword) => {/* Some condition checks */})
    .find((keyword, index) => {/* Some condition checks */})

Parameter

Die Funktion Array.find() verwendet als Eingabeparameter eine Funktion. Normalerweise verwenden wir Pfeilfunktionen als Parameter. Und diese Pfeilfunktionen können Bedingungsprüfungen wie item => item > 21 enthalten. Ein weiterer optionaler Parameter ist der Index, der den aktuellen Iterationsindex darstellt. .find() führt die Pfeilfunktion auf jedem Element des Arrays aus. Daher stellt es den Iterator als Argument für die Pfeilfunktion bereit, um bei weiteren bedingten Prüfungen zu helfen.

Rückgabewert

.find() unterscheidet sich etwas von den indexOf(), includes() Funktionen von JavaScript. Es gibt den Wert des Elements zurück, wenn es gefunden wurde, andernfalls gibt die Funktion undefiniert zurück.

Browser-Unterstützung

Wie die Funktion .includes() funktioniert .find() in fast allen Webbrowsern außer Internet Explorer. Daher sollten wir uns vergewissern, dass unser Projekt nicht für den IE unterstützt wird, bevor wir planen, solche Funktionen für Array-Operationen zu verwenden.

Verwendung

Siehe die folgende Verwendung in einem Array.

let age = [21, 43, 23, 1, 34, 12, 8];
console.log(age.find(i => i > 20));
console.log(age.find(i => i > 21))

Ausgabe:

21
43

Wir sind vielleicht etwas überrascht von der Ausgabe von age.find(i => i > 21), da sie 43 statt 23 zurückgibt, was die nächsthöhere Zahl zu 21 in age war. Array. Beachten Sie, dass die Funktion .find() in chronologischer Reihenfolge das nächste Element zurückgibt, das die in der Array-Funktion erwähnte Bedingung erfüllt. Um ein Element mit einem if-Block zu suchen, können wir den folgenden Code verwenden.

function findPeerAge(myAge) {
  let age = [21, 43, 23, 1, 34, 12, 8];
  if (age.find(i => (i === myAge))) {
    return true;
  } else {
    return false;
  }
}
findPeerAge(23);
findPeerAge(40);
true
false

Verwenden der Funktion .filter() zur Suche nach Elementen in einem Array in JavaScript

Die Funktion .filter() wird hauptsächlich bei Array-Verarbeitungsoperationen verwendet. Vor allem, wenn es darum geht, Elemente, die ein Kriterium erfüllen, aus einem Array herauszufiltern. Es gibt ein Array von Elementen zurück, die die Kriterien erfüllen, die in der als Argument übergebenen Funktion definiert sind.

Syntax

Folgt der gleichen Syntax wie Array.find().

.filter((keyword) => {/* Some condition checks */})
    .filter((keyword, index) => {/* Some condition checks */})

Parameter

Die Funktion Array.filter() akzeptiert als Parameter eine Inline- oder Pfeilfunktion. Die Pfeilfunktion hält die Filterkriterien. Die Funktion .filter() führt die Pfeilfunktion für jedes Element des Arrays aus und gibt die Elemente zurück, die die in der Pfeilfunktion erwähnten Bedingungen erfüllen. Die Pfeilfunktion hat das Schlüsselwort als Eingabe und die aktuelle Iteration als Index.

Rückgabewert

Im Gegensatz zu den bisher bekannten Array-Suchfunktionen gibt .filter() ein Array zurück, das die Elemente enthält, die die in der Pfeilfunktion genannten Bedingungen erfüllen. Wenn Element gefunden wird, enthält das zurückgegebene Array die erforderlichen Elemente, andernfalls wird von der Funktion ein leeres Array zurückgegeben.

Browser-Unterstützung

Die Funktion .filter() wird von allen Browsern auch vom Internet Explorer unterstützt. So können Sie die Funktion .filter() verwenden, ohne sich um die erwartete Browserunterstützung zu kümmern.

Verwendung: Die Verwendung dieser Funktion ist wie folgt

let age = [21, 43, 23, 1, 34, 12, 8];
console.log(age.filter(i => i > 20));
console.log(age.filter(i => i > 21));

Ausgabe:

[21, 43, 23, 34]
[43, 23, 34]

Wie wir am Ergebnis sehen, gibt die Funktion filter() ein Array zurück. Wenn wir nach einem Element in einem Array suchen müssen, können wir die Funktion filter() verwenden, wie im folgenden Codebeispiel dargestellt. Wir verwenden das Attribut .length des Arrays, das von der Funktion filter() zurückgegeben wird, um zu bestimmen, ob das Element gefunden werden kann oder nicht. Wenn die Funktion ein leeres Array zurückgibt, bedeutet dies, dass sie das Suchschlüsselwort nicht finden konnte.

function findAge(myAge) {
  let age = [21, 43, 23, 1, 34, 12, 8];
  if (age.filter(i => (i === myAge)).length) {
    return true;
  } else {
    return false;
  }
}
findAge(23);
findAge(40);

Ausgabe:

true
false

Verwenden einer einfachen for-Schleife zur Suche nach einem Element

Wir finden ein Element in einem Array mit den grundlegenden Methoden von JavaScript, der if-Bedingung und der for-Schleife. Der folgende Code gibt true zurück, wenn das Element gefunden wird, andernfalls wird false zurückgegeben. Wenn das gleiche Element mehr als einmal vorkommt, gibt die Funktion nur die erste Übereinstimmung zurück.

function findAge(myAge, ageAry) {
  let elementFound = false;
  for (let i = 0; i < ageAry.length; i++) {
    if (ageAry[i] === myAge) {
      return true;
    }
  }
  return elementFound;
}
let srcArray = [21, 43, 23, 1, 34, 12, 8];
findAge(23, srcArray);
findAge(40, srcArray);
findAge(8, srcArray);
findAge(23, srcArray);

Ausgabe:

true
false
true
true

Hinweis

  • Die Funktionen .indexOf(), .includes() suchen nach einer exakten Elementübereinstimmung. Wir können es nicht zum Durchsuchen von Teilstrings verwenden. Dies bedeutet, dass ein Teil eines Elements bereitgestellt wird, da der Suchparameter nicht funktioniert.
  • Wir können eine partielle Elementsuche mit den Funktionen Array.filter() und Array.find() implementieren, da sie es uns ermöglichen, die Suchkriterien individuell zu definieren.

Verwandter Artikel - JavaScript Array