JavaScript метод some()

JavaScript Array

Определение и применение

JavaScript метод some() позволяет проверить соответствует ли по крайней мере один элемент в массиве условию, заданному в передаваемой функции.

Возвращаемое значение метода будет логическое значение true, если функция обратного вызова возвращает значение true (найден элемент который соответствует заданному условию), в противном случае вернет логическое значение false (все элементы массива не соответствуют переданному условию).


Обращаю Ваше внимание, что функция обратного вызова, переданная в качестве параметра метода some() не будет вызвана для удалённых, или пропущенных элементов массива. Метод some() не изменяет массив для которого он был вызван.


Диапазон элементов, обрабатываемых с помощью метода some() устанавливается перед первым вызовом функции обратного вызова. Если элементы были добавлены к массиву после её вызова, то на таких элементах функция вызвана не будет.

Если значения существующих элементов массива изменяются в момент выполнения, то в качестве передаваемого значения функции будет значение в тот момент времени, когда метод some() посещает их. Если элементы удаляются до их посещения, то такие элементы посещены не будут.

Поддержка браузерами

МетодChrome
Chrome
Firefox
Firefox
Opera
Opera
Safari
Safari
Internet Explorer
IExplorer
Microsoft Edge
Edge
some()ДаДаДаДа9.0Да

JavaScript синтаксис:

// только с callback функцией
array.some( function( currentValue, index, arr ) ); 

// с использованием объекта, на который может ссылаться ключевое слово this
array.some( function( currentValue, index, arr ), thisValue ); 

Версия JavaScript

ECMAScript 5.1 (Реализовано в JavaScript 1.6)

Значения параметров

ПараметрОписание
function Функция обратного вызова, которая будет выполнена один раз для каждого элемента в массиве до тех пор, пока не найдет такой элемент, для которого вернет истинное значение. Функция принимает следующие параметры:
  • currentValue - значение текущего элемента
  • index - индекс массива текущего элемента.
  • arr - массив, к которому принадлежит текущий элемент (по которому происходит проход).

Обязательный параметр.

thisValueОбъект, на который может ссылаться ключевое слово this внутри функции обратного вызова. Если параметр thisValue не используется, то в качестве значения this будет использоваться undefined (в конечном счете this будет зависеть от обычных правил контекста выполнения функции). Необязательный параметр.

Исключения

Тип исключенияОписание
TypeErrorЕсли в качестве параметра метода передается что-то, что не является объектом функции, то будет вызвано исключение.

Пример использования

В следующем примере с использованием JavaScript метода some() мы рассмотрим как проверить содержится ли элемент с определенным значением в массиве:

var arr = [10, 20, 30, 40]; // инициализируем переменную, содержащую массив числовых значений 

function checkNumber( elem ) {
  return elem == 30; // проверяем соответствует ли текущий элемент значению 30
} 

// проверяем соответствует ли по крайней мере один элемент в массиве условию, заданному в передаваемой функции 
arr.some( checkNumber ) // возвращаемое значение true

// аналогично с использованием стрелочной функции

arr.some( currentValue => currentValue > 100 ); // возвращаемое значение false
arr.some( currentValue => currentValue < 100 ); // возвращаемое значение true

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

var numbers = [10, 20, 30, 40]; // инициализируем переменную, содержащую массив числовых значений 
var myObject = { // инициализируем переменную, содержащую объект 
  checkNumber: function( currentValue ) { // метод объекта, который принимает значение  
    return currentValue == 40; // проверяем соответствует ли текущий элемент значению 40 
  }
};

numbers.some( // проверяем соответствует ли по крайней мере один элемент в массиве условию, заданному в передаваемой функции
  function( currentValue ) {
    return this.checkNumber( currentValue ); //  возвращаемое значение метода checkNumber объекта myObject
  }, myObject // объект, на который мы ссылаемся с использованием ключевого слова this 
); // возвращаемое значение будет true (элемент со значением 40 содержится в массиве)
JavaScript Array