Przejdź do treści

Sprawdzanie warunku dla przynajmniej jednego elementu - some

Jak sprawdzić, czy przynajmniej jeden element tablicy spełnia podany warunek?

(interpretuje: Internet Explorer 9, Firefox, Opera, Chrome)

Array.prototype.some(callbackfn)
Array.prototype.some(callbackfn, thisArg)
Parametry:
Function callbackfn - funkcja testująca przyjmująca argumenty:
  • kValue - element tablicy
  • Number k - indeks elementu tablicy
  • Array O - oryginalna tablica
thisArg - wartość bieżącego obiektu this dostępnego w czasie wywołania wewnątrz ciała funkcji (domyślnie: undefined)
Wartość:
Boolean - czy przynajmniej dla jednego elementu tablicy funkcja testująca zwraca wartość true
Wyjątki:
TypeError - callbackfn nie jest funkcją

Pozwala sprawdzić, czy przynajmniej jeden element tablicy spełnia określony warunek. Elementy, które nie zostały jawnie dodane do tablicy, są pomijane.

Jest odpowiednikiem operatora || (lub - ang. or) przy działaniach na wartościach skalarnych.

Przykład Array.prototype.some

var items = [3, 2, 1];
 
var f = function (x) {
    return x > 0;
};
items.some(f);                   // true
 
f = function (x) {
    return x < 0;
};
items.some(f);                   // false
 
var GreaterThan = function (value) {
    this.value = value;
    this.tests = 0;
};
GreaterThan.prototype.test = function (value) {
    ++this.tests;
    return value > this.value;
};
 
var tester = new GreaterThan(0);
items.some(tester.test, tester); // true
tester.tests;                    // 1
 
tester = new GreaterThan(4);
items.some(tester.test, tester); // false
tester.tests;                    // 3
 
items = [1, 2];
items[3] = 3;
items.length;                    // 4
tester = new GreaterThan(4);
items.some(tester.test, tester); // false
tester.tests;                    // 3
 
items[2] = undefined;
items.length;                    // 4
tester = new GreaterThan(4);
items.some(tester.test, tester); // false
tester.tests;                    // 4
 
items.some(null);                // TypeError
items.some(undefined);           // TypeError
items.some({});                  // TypeError

Komentarze

Zobacz więcej komentarzy

Facebook