Наповнення JS розділу

Добридень, Пані та Панове, завдяки вам вдалося зібрати більше 19тис грн з необхідних 15тис на впровадження JS розділу.

JS розділ вже впроваджено - переходимо до його наповнення і почнемо бігти довгий марафон, адже JS має більше 1100 різноманітних методів, властивостей, подій і т.д., які необхідно описати.

Будемо працювати, і вдень, і вночі, щоб орієнтовно взимку закінчити наповнювати JS розділ!

Ви також можете допомогти нам в цьому. Долучайтеся до нашої спільноти в дискорді - ставайте її частиною і допомагайте нашому розвитку.

Також, підтримуйте нас матеріально.

JS метод Array.some()

Опис

Метод some() перевіряє, чи хоча б один елемент масиву задовольняє функцію-перевірку, і повертає true або false.

Приклад:

let numbers = [1, -2, 3, 4, -5];
let hasPositive = numbers.some(number => number > 0);
console.log(hasPositive); // true

У цьому прикладі метод some() перевіряє, чи існує в масиві хоча б одне позитивне число. Результатом буде true, оскільки у масиві є позитивні числа.

Метод some() пропонує ітеративний підхід до обробки елементів масиву. Він працює, застосовуючи надану функцію callbackFn до кожного елемента масиву до моменту, коли callbackFn повертає істинне значення. Якщо хоч один елемент задовольняє умову, то some() миттєво повертає true і припиняє дію. В іншому випадку метод повертає false. Метод some() можна сприймати як логічний оператор "існує". Цікаво, що для порожнього масиву він завжди повертає false.

Функція callbackFn викликається тільки для тих індексів масиву, які мають присвоєні значення, тому порожні місця у розріджених масивах будуть проігноровані.

Незважаючи на те, що some() сам по собі не змінює оригінальний масив, callbackFn може це робити. Ось кілька важливих нюансів:

  • Довжина масиву зберігається до першого виклику callbackFn. Тому елементи, додані після початку виконання some(), не будуть враховані.
  • Зміни, які відбулися у вже перевірених елементах, не призведуть до їх повторного обходу.
  • Якщо callbackFn модифікує ще не перевірений елемент, передане у функцію значення буде відповідати актуальному стану на момент його перевірки. Видалені елементи не враховуються.

Попередження: Рекомендується уникати одночасних змін масиву під час ітерації, так як це може ускладнити розуміння та налагодження коду.

Нотатка:

Метод some() перевіряє елементи масиву у порядку їхнього розташування і припиняє перевірку, якщо знайдено елемент, який задовольняє умовний тест (callback-функція повертає true). Тобто, він не намагатиметься перевірити всі елементи масиву, якщо умова вже була задоволена.

Нотатка:

Метод some() повертає true, якщо хоча б один елемент масиву задовольняє умову, і false, якщо жоден елемент не задовольняє умову. Ви можете використовувати це значення для управління подальшим ходом вашої програми.

Нотатка:

Метод some() є універсальним. Він очікує, що this має властивість length та властивості з цілочисельними індексами.

Синтаксис

some(callbackFn)
some(callbackFn, thisArg)

Параметри

*callbackFn

Функція, яку слід виконати для кожного елемента у масиві. Вона повинна повертати істинне значення (truthy), щоб показати, що елемент проходить перевірку, та хибне значення (falsy) в іншому випадку.

Функція callbackFn викликається з наступними аргументами:

  • element: поточний елемент, який обробляється у масиві;
  • index: індекс поточного елемента, який обробляється у масиві;
  • array: масив, на якому було викликано метод findIndex().
thisArg

Значення, яке використовується як this під час виконання callbackFn.

Return

bool

true, якщо callback-функція (callbackFn) повертає істинне значення (truthy) хоча б для одного елемента у масиві. В іншому випадку - false.

Переглядачі

Переглядач

1

1.5

3

9.5

12

Переглядач

37

18

4

1

Переглядач

0.10.0

1.0

Приклади


Цей приклад демонструє, як метод some() перевіряє наявність парних та непарних чисел в масиві за допомогою переданих тестових функцій.

Приклад перевіряє, чи є який-небудь елемент у масиві більшим за 10.

function isBiggerThan10(element, index, array) {
  return element > 10;
}

[2, 5, 8, 1, 4].some(isBiggerThan10); // false
[12, 5, 8, 1, 4].some(isBiggerThan10); // true

Перевірка елементів масиву за допомогою стрілкових функцій.

[2, 5, 8, 1, 4].some((x) => x > 10); // false
[12, 5, 8, 1, 4].some((x) => x > 10); // true

Перевірка наявності значення в масиві.

const fruits = ["apple", "banana", "mango", "guava"];

function checkAvailability(arr, val) {
  return arr.some((arrVal) => val === arrVal);
}

checkAvailability(fruits, "kela"); // false
checkAvailability(fruits, "banana"); // true

Використання функції some() на розріджених масивах. Функція some() не виконує передану їй умову для пустих слотів.

console.log([1, , 3].some((x) => x === undefined)); // false
console.log([1, , 1].some((x) => x !== 1)); // false
console.log([1, undefined, 1].some((x) => x !== 1)); // true

Використання функції some() на об'єктах, які не є масивами.

const arrayLike = {
  length: 3,
  0: "a",
  1: "b",
  2: "c",
  3: 3, // ігнорується some(), оскільки length дорівнює 3
};
console.log(Array.prototype.some.call(arrayLike, (x) => typeof x === "number"));
// false