Как использовать метод Array some() в Javascript

Определение

Вы можете использовать метод some, чтобы проверить, проходит ли хотя бы один элемент в массиве указанный вами тест. Если вам нужно проверить, все ли элементы проходят проверку, вместо этого следует использовать метод every.

myArray.some(callbackFunction, thisArg?)

Аргумент callbackFunction — это функция, которая проверяет элементы массива. Он выполняется для каждого элемента массива, начиная с самого начала. Если функция возвращает истинное значение для элемента (тест пройден), метод some вернет true. Остальные элементы не проверяются.

callbackFunction имеет три аргумента:

  • element - текущий элемент в массиве.
  • index - индекс текущего элемента в массиве.
  • array — ссылка на массив, для которого вы вызвали метод some.

Аргумент thisArg — это значение, которое будет использоваться как ключевое слово this при выполнении callbackFunction. Этот аргумент является необязательным.

Возвращаемое значение

Возвращает true, если callbackFunction возвращает истинное значение для одного элемента в массиве, иначе возвращает false.

Примечание

Если вы используете метод some для пустого массива, он всегда будет возвращать false.

Пример

Предположим, у вас есть список оценок, и вы хотите проверить, есть ли какие-либо учащиеся, которые сдали его. Вы можете просмотреть массив оценок, используя цикл for, но это будет довольно многословно:

let hasPassingGrades = false
const grades = [75, 10, 81, 100, 45]
for (let i = 0; i < grades.length; i++) {
  if (grades[i] >= 80) {
    hasPassingGrades = true
    break
  }
}
console.log(hasPassingGrades) // true

Вместо этого вы можете использовать метод some, который сделает код очень кратким и понятным:

function isPassingGrade(element, index, array) {
  return element >= 80
}
const grades = [75, 10, 81, 100, 45]
console.log(grades.some(isPassingGrade)) // true

Вы также можете использовать сокращенный синтаксис стрелки для callbackFunction:

const grades = [75, 10, 81, 100, 45]
console.log(grades.some((element) => element >= 80)) // true

Первоначально опубликовано на https://konsole.blog 21 мая 2022 г.