JavaScript метод some()
JavaScript ArrayОпределение и применение
JavaScript метод some() позволяет проверить соответствует ли по крайней мере один элемент в массиве условию, заданному в передаваемой функции.
Возвращаемое значение метода будет логическое значение true, если функция обратного вызова возвращает значение true (найден элемент который соответствует заданному условию), в противном случае вернет логическое значение false (все элементы массива не соответствуют переданному условию).
Обращаю Ваше внимание, что функция обратного вызова, переданная в качестве параметра метода some() не будет вызвана для удалённых, или пропущенных элементов массива. Метод some() не изменяет массив для которого он был вызван.
Диапазон элементов, обрабатываемых с помощью метода some() устанавливается перед первым вызовом функции обратного вызова. Если элементы были добавлены к массиву после её вызова, то на таких элементах функция вызвана не будет.
Если значения существующих элементов массива изменяются в момент выполнения, то в качестве передаваемого значения функции будет значение в тот момент времени, когда метод some() посещает их. Если элементы удаляются до их посещения, то такие элементы посещены не будут.
Поддержка браузерами
Метод | Chrome | Firefox | Opera | Safari | IExplorer | 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 | Функция обратного вызова, которая будет выполнена один раз для каждого элемента в массиве до тех пор, пока не найдет такой элемент, для которого вернет истинное значение. Функция принимает следующие параметры:
Обязательный параметр. |
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