Signatur
Beschreibung
Die every()-Methode von Array-Instanzen gibt false zurück, wenn sie ein Element im Array findet, das die bereitgestellte Testfunktion nicht erfüllt. Andernfalls gibt sie true zurück.
Die every()-Methode ist eine iterative Methode. Sie ruft eine bereitgestellte callbackFn-Funktion einmal für jedes Element in einem Array auf, bis die callbackFn einen falsy Wert zurückgibt. Wird ein solches Element gefunden, gibt every() sofort false zurück und beendet die Iteration durch das Array. Andernfalls, wenn callbackFn für alle Elemente einen truthy Wert zurückgibt, gibt every() true zurück. Weitere Informationen zur allgemeinen Funktionsweise dieser Methoden findest du im Abschnitt zu iterativen Methoden.
every verhält sich wie der „für alle"-Quantor in der Mathematik. Insbesondere gibt sie für ein leeres Array true zurück. (Es ist vakuös wahr, dass alle Elemente der leeren Menge jede gegebene Bedingung erfüllen.)
callbackFn wird nur für Array-Indizes aufgerufen, denen Werte zugewiesen wurden. Sie wird nicht für leere Slots in sparse Arrays aufgerufen.
Die every()-Methode ist generisch. Sie erwartet vom this-Wert lediglich, dass er eine length-Eigenschaft und ganzzahlig indizierte Eigenschaften besitzt.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $callbackFn Pflicht | Function | — | Eine Funktion, die für jedes Element im Array ausgeführt wird. Sie sollte einen truthy Wert zurückgeben, um anzugeben, dass das Element den Test besteht, und andernfalls einen falsy Wert. Die Funktion wird mit den folgenden Argumenten aufgerufen: element (das aktuell verarbeitete Element), index (der Index des aktuell verarbeiteten Elements) und array (das Array, auf dem every() aufgerufen wurde). |
| $thisArg | any | — | Ein Wert, der als this beim Ausführen von callbackFn verwendet wird. Siehe iterative methods. |
Rückgabewert
Beispiele
Größe aller Array-Elemente testen
function isBigEnough(element, index, array) {
return element >= 10;
}
[12, 5, 8, 130, 44].every(isBigEnough); // false
[12, 54, 18, 130, 44].every(isBigEnough); // true
Prüfen, ob ein Array eine Teilmenge eines anderen ist
const isSubset = (array1, array2) =>
array2.every((element) => array1.includes(element));
console.log(isSubset([1, 2, 3, 4, 5, 6, 7], [5, 7, 6])); // true
console.log(isSubset([1, 2, 3, 4, 5, 6, 7], [5, 8, 7])); // false
Verwendung des dritten Arguments von callbackFn
const numbers = [-2, 4, -8, 16, -32];
const isIncreasing = numbers
.filter((num) => num > 0)
.every((num, idx, arr) => {
// Ohne das arr-Argument gibt es keine einfache Möglichkeit, auf das
// Zwischen-Array zuzugreifen, ohne es in einer Variablen zu speichern.
if (idx === 0) return true;
return num > arr[idx - 1];
});
console.log(isIncreasing); // true
every() auf sparse Arrays anwenden
console.log([1, , 3].every((x) => x !== undefined)); // true
console.log([2, , 2].every((x) => x === 2)); // true
every() auf Nicht-Array-Objekten aufrufen
const arrayLike = {
length: 3,
0: "a",
1: "b",
2: "c",
3: 345, // wird von every() ignoriert, da length 3 ist
};
console.log(
Array.prototype.every.call(arrayLike, (x) => typeof x === "string"),
); // true