MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

Array.prototype.every()

Sumar

Metoda every() testează dacă toate elementele din array trec testul implementat prin funcția dată.

Sintaxă

arr.every(callback[, thisArg])

Parametrii

callback
Funcția cu care să se testeze fiecare element din array.
thisArg
Valoarea pentru this care se folosește la execuția funcției callback.

Descriere

Metoda every execută funcția callback o dată pentru fiecare element prezent în array până când găsește unul pentru care callback returneaza o valoare falsy (o valoare care devine false atunci când e convertită la Boolean). Dacă un asemenea element este găsit, funcția every returnează false imediat. Altfel, dacă funcția callback returnează o valoare adevărată (true) pentru toate elementele, every o să returneze true. Funcția callback este apelată doar pentru acele indexuri din array care au valori asignate; nu este apelată pentru indexuri care au fost șterse sau cărora nu le-au fost asignate valori.

callback este apelată cu trei parametrii: valoarea elementului curent, indexul elementului curent și obiectul Array care este traversat.

Dacă parametrul thisArg este folosit la apelul funcției every, acesta va fi transmis funcției callback atunci când este apelată, spre a fi folosit drept valoare pentru this. Altfel, valoarea undefined va fi cea folosită ca this.  Valoarea this care în cele din urmă este folosită de callback este determinată conform regulilor obișnuite pentru determinarea valorii this pentru o funcție.

Metoda every nu modifică array-ul pentru care este apelată.

Șirul elementelor care este procesat de metoda every este stabilit înainte de prima apelare a funcției callback. Elementele care sunt adăugate array-ului după ce apelul metodei  every are log, nu sunt vizitate de către funcția callback. Dacă anumite elemente din array sunt modificate, valoarea transmisă funcției callback corespunzătoarea acestor elemente va fi valoarea la momentul în care metoda every le accesează; elementele șterse între timp nu sunt accesate (pentru ele nu se apeleaza  funcția callback).

every se comportă ca un cuantificator "for all" din matematică. În speță, pentru un array vid, returnează true. (Este aproximat ca adevărat faptul că toate elementele dintr-o mulțime vidă satisfac orice condiție dată.)

Exemple

Exemplu: Testarea mărimii fiecărui element din array

Exemplul următor testează dacă toate elementele din array sunt mai mari sau egale cu 10.

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

Polyfill

Metoda every a fost adăugată în standardul ECMA-262 în ediția a 5-a; din această cauză, s-ar putea să nu fie disponibilă în alte implementări ale standardului. Puteți repara acest lucru folosind codul următor la începutul scripturilor dvs, în acest fel permițând folosirea metodei every în implementări care nu o suportă în mod nativ. Acest algoritm este exact cel specificat în standardul ECMA-262, ediția a 5-a, cu prezumția că Object și TypeError au valorile lor originale, și că fun.call se evaluează la valoarea originală a  Function.prototype.call.

if (!Array.prototype.every)
{
  Array.prototype.every = function(fun /*, thisArg */)
  {
    'use strict';

    if (this === void 0 || this === null)
      throw new TypeError();

    var t = Object(this);
    var len = t.length >>> 0;
    if (typeof fun !== 'function')
        throw new TypeError();

    var thisArg = arguments.length >= 2 ? arguments[1] : void 0;
    for (var i = 0; i < len; i++)
    {
      if (i in t && !fun.call(thisArg, t[i], i, t))
        return false;
    }

    return true;
  };
}

Specifications

Specification Status Comment
ECMAScript 5.1 (ECMA-262)
The definition of 'Array.prototype.every' in that specification.
Standard Initial definition.
Implemented in JavaScript 1.6
ECMAScript 6 (ECMA-262)
The definition of 'Array.prototype.every' in that specification.
Release Candidate  

Browser compatibility

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Yes) 1.5 (1.8) 9 (Yes) (Yes)
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (Yes) (Yes) 1.0 (1.8) (Yes) (Yes) (Yes)

See also

Document Tags and Contributors

 Contributors to this page: Radu
 Last updated by: Radu,