Skip to content

Commit

Permalink
update(JS): web/javascript/reference/global_objects/array/some
Browse files Browse the repository at this point in the history
  • Loading branch information
undead404 authored and AdriandeCita committed Nov 27, 2022
1 parent d0578fa commit 7331578
Showing 1 changed file with 10 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,9 @@ some(function(element, index, array) { /* … */ }, thisArg)

- `callbackFn` (функція зворотного виклику)

- : Функція для перевірки кожного елемента.
- : Функція для виконання на кожному елементі масиву. Повинна повертати [значення істинності](/uk/docs/Glossary/Truthy), коли елемент проходить перевірку, а інакше – хибності.

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

- `element` (елемент)
- : Поточний елемент масиву, що обробляється.
Expand All @@ -53,29 +53,25 @@ some(function(element, index, array) { /* … */ }, thisArg)
- : Масив, на котрому викликали `some()`.

- `thisArg` (аргумент `this`) {{optional_inline}}
- : Значення, котре використовуватиметься як `this` при виконанні `callbackFn`.
- : Значення, котре використовуватиметься як `this` при виконанні `callbackFn`. Докладніше – в [ітеративних методах](/uk/docs/Web/JavaScript/Reference/Global_Objects/Array#iteratyvni-metody).

### Повернене значення

`true`, якщо функція зворотного виклику поверне {{Glossary("truthy", "істинне")}} значення принаймні для одного елемента масиву. Інакше – `false`.

## Опис

Метод `some()` один раз викликає `callbackFn` для кожного елемента, присутнього в масиві, поки не знайде такий, для якого `callbackFn` поверне _істинне_ значення (таке, що стає істинністю при перетворенні на булеве значення). Якщо такий елемент знайдено, то `some()` негайно повертає `true`. Інакше `some()` повертає `false`.
Метод `some()` є [ітеративним методом](/uk/docs/Web/JavaScript/Reference/Global_Objects/Array#iteratyvni-metody). Він викликає надану функцію `callbackFn` один раз для кожного елемента масиву, поки `callbackFn` не поверне значення [істинності](/uk/docs/Glossary/Truthy). Якщо такий елемент знайдено, то `some()` негайно повертає `true` і припиняє ітерування масиву. Інакше, якщо `callbackFn` повертає значення [хибності](/uk/docs/Glossary/Falsy) для всіх елементів, то `some()` повертає `false`.

`callbackFn` закликається лише для індексів масиву, котрим присвоєно значення. Вона не закликається для порожніх комірок у [розріджених масивах](/uk/docs/Web/JavaScript/Guide/Indexed_collections#rozridzheni-masyvy).
`some()` діє подібно до квантора існування в математиці. Наприклад, для порожнього масиву він повертає `false` для будь-якої умови.

`callbackFn` викликається з трьома аргументами: значенням елемента, індексом масиву та об'єктом `Array`, за котрим відбувається обхід.
`callbackFn` закликається лише для тих індексів масиву, що мають відповідні їм значення. Вона не закликається для порожніх комірок у [розріджених масивах](/uk/docs/Web/JavaScript/Guide/Indexed_collections#rozridzheni-masyvy).

Якщо методу `some()` наданий параметр `thisArg`, то він буде використовуватись як значення `this` функції зворотного виклику. Інакше – як `this` використовуватиметься значення {{jsxref("undefined")}}. Значення `this`, котре врешті решт стає доступним в `callbackFn`, визначається згідно зі [звичними правилами визначення значення `this`, отримуваного функцією](/uk/docs/Web/JavaScript/Reference/Operators/this).
`some()` не видозмінює масив, на котрому викликаний, але функція, передана як `callbackFn`, може це робити. Проте зверніть увагу на те, що довжина масиву зберігається _до_ першого заклику `callbackFn`. Таким чином:

`some()` не змінює масиву, на котрому викликається.

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

> **Застереження:** Паралельні зміни такого роду, як описано в попередньому абзаці, часто призводять до важкого для розуміння коду, їх в цілому слід уникати (крім особливих випадків).
`some()` діє як квантор існування в математиці. Таким чином, на пустому масиві він повертає `false` для будь-якої перевірки.
- `callbackFn` не оброблятиме жодних елементів, доданих поза початковою довжиною масиву, актуальною на мить початку виклику `some()`.
- Зміни до вже оброблених індексів не призводять до повторного виклику на них `callbackFn`.
- Якщо наявний, поки необроблений елемент масиву змінюється `callbackFn`, то його значення, передане в `callbackFn`, буде значенням на ту мить, коли цей елемент обробляється. [Видалені](/uk/docs/Web/JavaScript/Reference/Operators/delete) елементи – не обробляються.

Метод `some()` є [узагальненим](/uk/docs/Web/JavaScript/Reference/Global_Objects/Array#uzahalneni-metody-masyvu). Він лишень очікує, що значення `this` матиме властивість `length`, а також властивості з цілочисловими ключами.

Expand Down Expand Up @@ -118,19 +114,6 @@ checkAvailability(fruits, "кела"); // false
checkAvailability(fruits, "банан"); // true
```

### Перевірка існування значення за допомогою стрілкової функції

```js
const fruits = ["яблуко", "банан", "манго", "гуава"];

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

checkAvailability(fruits, "кела"); // false
checkAvailability(fruits, "банан"); // true
```

### Перетворення будь-якого значення на булеве

```js
Expand Down

0 comments on commit 7331578

Please sign in to comment.