JavaScript/Objekte/Array/some

Aus SELFHTML-Wiki
Wechseln zu: Navigation, Suche

Die Methode some ermöglicht es, die Einträge eines Arrays daraufhin zu untersuchen, ob ein Element enthalten ist, das einem bestimmten als Parameter übergebenen Eigenschaftenprofil entspricht.

  • ECMA 5
  • Chrome
  • Firefox
  • IE 9
  • Opera
  • Safari

Syntax

arr.some(callback[, thisArg])


Folgende Parameter sind möglich:

  • callback: Funktion auf die jedes Element überprüft wird, mit drei Argumenten:
    • currentValue: aktuelles Element, das überprüft wird
    • index: Index des aktuellen Elements
    • array: der Array, der mit some() aufgerufen wurde
  • thisArg: Optional. Wert, der bei einem Callback mit this aufgerufen werden kann


Der Rückgabewert der Callback-Funktion wird automatisch in einen boolschen Wert konvertiert.


Inhaltsverzeichnis

[Bearbeiten] Beschreibung

Bei der Auswertung des Arrays werden grundsätzlich nur diejenigen Elemente berücksichtigt, die vor dem Aufruf der Methode in dem Array gespeichert waren, denen ein Wert zugewiesen wurde und die auch nicht gelöscht wurden.

Werden zur Laufzeit Veränderungen an denjenigen Elementen des Arrays vorgenommen, die bei der Ausführung berücksichtigt wurden, so werden diese bei der Auswertung nur dann mit einbezogen, wenn der Wert des entsprechenden Elementes noch nicht an die Callback-Funktion übergeben wurde.

Wie die meisten anderen Array-Methoden auch, ist some nicht an den Array-Objekt-Typ gebunden, sondern kann auch anderen Objekt-Typen zugewiesen werden.

Beispiel
var myArray = ['Goofy', 'Snert', 'Idefix', 'Garfield', 'Rantanplan', 'Milou'];
 
var check = myArray.some(name => name.length === 8);
 
// check = true;


Wird ein Element gefunden, das den Test besteht, wird die Suche umgehend abgebrochen und true zurückgegeben, sonst false. Die Funktion von some besteht also lediglich darin, zu prüfen ob ein entsprechender Eintrag vorhanden ist, nicht jedoch darin, das Array nach mehreren entsprechenden Elementen zu durchsuchen und diese zurückzugeben. Hierfür wäre zum Beispiel die Methode filter die bessere Wahl.

[Bearbeiten] Parameter

An die Methode some können zwei Parameter übergeben werden, und zwar erstens die Callback-Funktion sowie zweitens ein optionaler Parameter, der sofern er angegeben wird, an die Callback-Funktion weitergereicht wird und dort mittels this referenziert werden kann.


[ ].some(function (value, index, array) {return boolean}, reference)


Der erste an die Callback-Funktion übergebene Parameter ist der Wert des Elementes für das die Funktion jeweils aufgerufen wird, der zweite Parameter beinhaltet den Index des Elementes und der dritte das Objekt, für welches die Methode ausgeführt wird.

[Bearbeiten] Rückgabe

Der Rückgabewert der Callback-Funktion wird automatisch in einen boolschen Wert umgewandelt, sofern es sich bei dem Wert nicht bereits um einen Wert dieses Datentyps handelt. Die Methode selbst gibt dann entsprechend true oder false zurück, je nach dem, ob ein passendes Element gefunden wurde oder nicht. Das Array beziehungsweise das Objekt welches durchsucht wird, wird dabei nicht verändert.

Beispiel
var foo = [ {bar : 42}, {baz : true} ].some( object => object.hasOwnProperty('baz') );
 
// foo = true;

[Bearbeiten] Anwendungsbeispiel

Insoweit es darum geht, falls gegeben, nur das erste Element des Arrays zu finden, welches den gesuchten Eigenschaften entspricht, jedoch zusätzlich die Möglichkeit gegeben sein soll, dieses Element auch zu identifizieren, dann könnte man die Methode beispielsweise in eine allgemeiner formulierte Funktion einbetten, welche, sofern ein passendes Element gefunden wurde, auch dessen Index preisgibt:


Beispiel
var myArray = [1, 'foo', [2, 3], 'bar', [4, 'baz'], 5];
 
var myCondition = element => Array.isArray(element);
 
var some = function (object, condition) {
    var i = false;
    object.some(function (element, index) {
        i = condition(element) && index;
        return i || i === 0 || false;
    });
    return i;
}
 
var check = some(myArray, myCondition);
 
// check = 2;

[Bearbeiten] Quellen

Meine Werkzeuge
Namensräume

Varianten
Aktionen
Übersicht
Index
Mitmachen
Werkzeuge
Spenden
SELFHTML