Skip to content
Grigoriev Oleg edited this page Apr 4, 2013 · 1 revision

go.Lang.some() - есть ли хоть один элемент, соответствующий критерию

some(items [, criterion [, context])

  • items {(Object|Array)} - набор элементов
  • criterion {(Function|String)} - критерий (функция или имя поля)
  • context {Object} - контекст для вызова criterion
  • :return {Boolean} - найден ли элемент, соответствующий критерию

Обратно совместима с Array.some (items.some(criterion, context)), но имеет расширенное поведение.

items - набор элементов

items, в отличии от Array.some(), может быть не только массивом, но и объектом. Тогда обходятся все его свойства (не заходя в прототип).

criterion - функция

В соответствии с Array.some() критерий может быть функцией, которая вызывается в контексте context на каждом элементе со следующими аргументами:

  • item {mixed} - очередной элемент.
  • key {(String|Number)} - индекс в массиве или ключ в объекте.
  • items {(Object|Array)} - исходный набор элементов.

criterion - строка

Интерпретируется, как имя поля:

go.Lang.some(items, "field"); // true, если хотя бы для одного item, item.field приводится к true

criterion = "field" аналогично criterion = function (item) {return item.field; }.

criterion - отсутствует

В этом случае рассматриваются сами элементы:

var items = [0, false, 2, null];

go.Lang.some(items); // true, так как в массиве есть "2".

criterion = undefined аналогично criterion = function (item) {return item; }.

Имеет смысл только для скаляров. Если это список объектов, то всегда будет положительный результа, так как все объекты приводятся к true.

Clone this wiki locally