Deze vertaling is niet volledig. Help dit artikel te vertalen vanuit het Engels.

De every() methode checkt of de test in the geimplementeerde functie voor alle elementen in het array slagen.

Syntax

arr.every(callback[, thisArg])

Parameters

callback
Functie die elk element checkt, gebruikt 3 argumenten:
currentValue (verplicht)
Het huidige element wat wordt verwerkt in het array.
index (optioneel)
De index van het huidige element wat wordt verwerkt in het array.
array (optioneel)
Het array waarop de methode every werd aangeroepen.
thisArg
Optioneel. Deze waarde wordt gebruikt als this wanneer callback wordt uitgevoerd.

Return value

true als de callback functie een truthy waarde terug geeft voor elk element uit het array; anders, false.

Beschrijving

De every methode voert voor elk element in het array de callback functie uit tot een element een falsy waarde teruggeeft. Wanneer een element met deze waarde gevonden wordt, geeft de every methode gelijk false terug. Als callback een truthy terug geeft voor alle elementen in het array zal every true terug geven. callback wordt alleen aangeroepen voor elementen in het array met een waarde; het wordt niet aangeroepen voor elementen die zijn gedeleted of nooit een waarde hebben gekregen.

callback wordt aangeroepen met 3 argumenten: de waarde van het element, de index van het element, en het Array object dat wordt doorlopen.

Wanneer een thisArg parameter wordt meegegeven aan every zal dit gebruikt worden als de this waarde van de callback. Indien dit niet wordt meegeven wordt undefined gebruikt als this waarde. De voor de callback uiteindelijk gebruikte this waarde wordt bepaald volgens de normale regels om this te bepalen voor een functie.

every verandert het array waarop het wordt aangeroepen niet.

De set van elementen die verwerkt zal worden door every wordt bepaald voor de eerste aanroep van callback. Elementen die na het aanroepen van every worden toegevoegd aan het array zullen niet door callback worden bezocht. Als bestaande elementen in het array worden gewijzigd zal de waarde die naar de callback gestuurd wordt de waarde zijn zoals deze was toen every aangeroepen werd; verwijderde elementen worden niet bezocht door callback.

every werkt als een "voor alle" kwantor in de wiskunde en de logica. In het bijzonder voor een lege array, hier wordt true terug gegeven. (Het is "vacuously true" dat alle element van een lege set voldoen aan welke gegeven conditie dan ook.)

Voorbeelden

Test grootte van alle array elementen

Het volgende voorbeeld checkt of alle elementen in het array groter zijn dan 10.

function isBigEnough(element, index, array) {
  return element >= 10;
}
[12, 5, 8, 130, 44].every(isBigEnough);   // false
[12, 54, 18, 130, 44].every(isBigEnough); // true

Met arrow functies

Arrow functions geven een kortere syntax voor dezelfde check.

[12, 5, 8, 130, 44].every(x => x >= 10); // false
[12, 54, 18, 130, 44].every(x => x >= 10); // true

Polyfill

every is vanaf de 5e editie toegevoegd aan de ECMA-262 standaard; hierdoor is het mogelijk niet aanwezig in andere implementies van de standaard. Je kunt hier omheen werken door de volgende code toe te voegen aan je script. Hiermee geef je every de mogelijkheid om gebruikt te worden in implementaties die dat in beginsel niet ondersteunen. Dit algoritme is gelijk aan het algoritme in ECMS-262, 5e editie. Hierbij moet er van uit gegaan worden dat Object en TypeError hun originele waarde hebben en dat callbackfn.call de originele waarde van Function.prototype.call checkt.

if (!Array.prototype.every) {
  Array.prototype.every = function(callbackfn, thisArg) {
    'use strict';
    var T, k;

    if (this == null) {
      throw new TypeError('this is null or not defined');
    }

    // 1. Let O be the result of calling ToObject passing the this 
    //    value as the argument.
    var O = Object(this);

    // 2. Let lenValue be the result of calling the Get internal method
    //    of O with the argument "length".
    // 3. Let len be ToUint32(lenValue).
    var len = O.length >>> 0;

    // 4. If IsCallable(callbackfn) is false, throw a TypeError exception.
    if (typeof callbackfn !== 'function') {
      throw new TypeError();
    }

    // 5. If thisArg was supplied, let T be thisArg; else let T be undefined.
    if (arguments.length > 1) {
      T = thisArg;
    }

    // 6. Let k be 0.
    k = 0;

    // 7. Repeat, while k < len
    while (k < len) {

      var kValue;

      // a. Let Pk be ToString(k).
      //   This is implicit for LHS operands of the in operator
      // b. Let kPresent be the result of calling the HasProperty internal 
      //    method of O with argument Pk.
      //   This step can be combined with c
      // c. If kPresent is true, then
      if (k in O) {

        // i. Let kValue be the result of calling the Get internal method
        //    of O with argument Pk.
        kValue = O[k];

        // ii. Let testResult be the result of calling the Call internal method
        //     of callbackfn with T as the this value and argument list 
        //     containing kValue, k, and O.
        var testResult = callbackfn.call(T, kValue, k, O);

        // iii. If ToBoolean(testResult) is false, return false.
        if (!testResult) {
          return false;
        }
      }
      k++;
    }
    return true;
  };
}

Specificaties

Specificatie Status Opmerking
ECMAScript 5.1 (ECMA-262)
The definition of 'Array.prototype.every' in that specification.
Standard Initiele definitie. Geimplementeerd in JavaScript 1.6.
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Array.prototype.every' in that specification.
Standard  
ECMAScript Latest Draft (ECMA-262)
The definition of 'Array.prototype.every' in that specification.
Draft  

Browser compatibility

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome voor AndroidEdge MobileFirefox voor AndroidOpera voor AndroidiOS SafariSamsung InternetNode.js
BasisondersteuningChrome Volledige ondersteuning JaEdge Volledige ondersteuning JaFirefox Volledige ondersteuning 1.5IE Volledige ondersteuning 9Opera Volledige ondersteuning JaSafari Volledige ondersteuning JaWebView Android Volledige ondersteuning JaChrome Android Volledige ondersteuning JaEdge Mobile Volledige ondersteuning JaFirefox Android Volledige ondersteuning 4Opera Android Volledige ondersteuning JaSafari iOS Volledige ondersteuning JaSamsung Internet Android Volledige ondersteuning Janodejs Volledige ondersteuning Ja

Legenda

Volledige ondersteuning  
Volledige ondersteuning

Zie ook

Documentlabels en -medewerkers

Aan deze pagina hebben bijgedragen: AnnemarieD
Laatst bijgewerkt door: AnnemarieD,