diff options
Diffstat (limited to 'files/uk/web/javascript/reference/global_objects/array/some/index.html')
-rw-r--r-- | files/uk/web/javascript/reference/global_objects/array/some/index.html | 206 |
1 files changed, 0 insertions, 206 deletions
diff --git a/files/uk/web/javascript/reference/global_objects/array/some/index.html b/files/uk/web/javascript/reference/global_objects/array/some/index.html deleted file mode 100644 index 934df016e0..0000000000 --- a/files/uk/web/javascript/reference/global_objects/array/some/index.html +++ /dev/null @@ -1,206 +0,0 @@ ---- -title: Array.prototype.some() -slug: Web/JavaScript/Reference/Global_Objects/Array/some -tags: - - ECMAScript5 - - Довідка - - Масив - - метод -translation_of: Web/JavaScript/Reference/Global_Objects/Array/some ---- -<div>{{JSRef}}</div> - -<p><span class="seoSummary">Метод <strong><code>some()</code></strong> з'ясовує, чи містить масив хоч один елемент, для якого зазначена функція <code>callback</code> повертає <code>true</code> (або значення, що зводиться до <code>true</code>). Повертає значення типу Boolean.</span></p> - -<div class="note"> -<p><strong>Зауваження</strong>: для порожнього масиву цей метод незмінно повертає <code>false</code>.</p> -</div> - -<div>{{EmbedInteractiveExample("pages/js/array-some.html")}}</div> - -<p class="hidden">Першокод цього прикладу збережено у репозиторії GitHub. Якщо ви хочете долучитися до створення чи покращення таких прикладів, пропонуйте нам свої зміни до репозиторію <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a>.</p> - -<h2 id="Синтаксис">Синтаксис</h2> - -<pre class="syntaxbox"><var>arr</var>.some(<var>callback(element[, index[, array]])</var>[, <var>thisArg</var>])</pre> - -<h3 id="Параметри">Параметри</h3> - -<dl> - <dt><code>callback</code></dt> - <dd>Функція, яка перевіряє елементи. Приймає три аргументи: - <dl> - <dt><code>element</code></dt> - <dd>Значення чергового елемента масиву.</dd> - <dt><code>index</code> {{Optional_inline}}</dt> - <dd>Індекс чергового елемента в масиві.</dd> - <dt><code>array</code>{{Optional_inline}}</dt> - <dd>Масив, до якого застосовано <code>some()</code>.</dd> - </dl> - </dd> - <dt><code>thisArg</code>{{Optional_inline}}</dt> - <dd>Значення, що використовується як <code><strong>this</strong></code> коли викликається <code>callback</code>.</dd> -</dl> - -<h3 id="Повертає">Повертає</h3> - -<p><code><strong>true</strong></code>, якщо функція повертає {{Glossary("truthy", "істинне")}} значення принаймні для одного з елементів масива. Інакше <code><strong>false</strong></code>.</p> - -<h2 id="Опис">Опис</h2> - -<p>Метод <code>some()</code> викликає функцію <code>callback</code> для кожного елемента в масиві один за одним, доки не знайде такий, для якого <code>callback</code> повертає істинне значення (значення, яке стає <code>true</code> внаслідок перетворення на Boolean). Щойно такий елемент знайдено, <code>some()</code> негайно повертає <code>true</code>, не перевіряючи решту елементів. Якщо таких елементів не знайдено, метод <code>some()</code> повертає <code>false</code>.</p> - -<p>Зауважте, що <code>callback</code> викликається лише для індексів масиву, яким надано значення. Тож індекси без встановлених значень, а також видалені елементи будуть знехтувані.</p> - -<p>Функція <code>callback</code> викликається з трьома аргументами: значення елемента, індекс елемента і об'єкт масиву, для якого викликано метод <code>some()</code>.</p> - -<p>Якщо для <code>some()</code> визначено параметр <code>thisArg</code>, його буде використано як значення <code>this</code> для функції <code>callback</code>. В іншому випадку, буде використано значення {{jsxref("undefined")}}. Зрештою, значення <code>this</code> для функції <code>callback</code> буде визначено відповідно до <a href="/uk/docs/Web/JavaScript/Reference/Operators/this">загальних правил</a>.</p> - -<p>Метод <code>some()</code> не змінює масив, для якого його викликано.</p> - -<p>Межі індексів елементів, які буде перевірено, встановлюються перед найпершим викликом <code>callback</code>. Тож всі елементи, додані в кінець масиву вже під час виконання <code>some()</code>, будуть знехтувані. Якщо значення котрогось елемента буде змінено зсередини <code>callback</code>, наступний виклик <code>callback</code> (якщо такий буде) це врахує. Видалені елементи перевірено не буде.</p> - -<h2 id="Приклади">Приклади</h2> - -<h3 id="Перевірка_елементів_масива">Перевірка елементів масива</h3> - -<p>В цьому прикладі виклик <code>some()</code> перевіряє, чи містить масив числа більші від 10:</p> - -<pre class="brush: js">function isBiggerThan10(element, index, array) { - return element > 10; -} - -[2, 5, 8, 1, 4].some(isBiggerThan10); // вертає false -[12, 5, 8, 1, 4].some(isBiggerThan10); // вертає true -</pre> - -<h3 id="Перевірка_елементів_масива_стрілковою_функцією">Перевірка елементів масива стрілковою функцією</h3> - -<p>Те саме, що і в попередньому прикладі, але із синтаксисом <a href="/uk/docs/Web/JavaScript/Reference/Functions/Стрілкові_функції">стрілкової функції</a>:</p> - -<pre class="brush: js">[2, 5, 8, 1, 4].some(x => x > 10); // вертає false -[12, 5, 8, 1, 4].some(x => x > 10); // вертає true -</pre> - -<h3 id="Перевірка_наявності_певного_значення_в_масиві">Перевірка наявності певного значення в масиві</h3> - -<p>Щоб відтворити поведінку метода {{jsxref("Array.prototype.includes()", "includes()")}}, функція повертає <code>true</code>, щойно знаходить шукане значення в масиві:</p> - -<pre class="brush: js">var fruits = ['яблуко', 'груша', 'персик', 'банан']; - -function contains(array, value) { - return array.some(function(v) { - return value === v; - }); -} - -contains(fruits, 'вишня'); // вертає false -contains(fruits, 'банан'); // вертає true</pre> - -<h3 id="Перевірка_наявності_певного_значення_в_масиві_стрілковою_функцією">Перевірка наявності певного значення в масиві стрілковою функцією</h3> - -<pre class="brush: js">var fruits = ['яблуко', 'груша', 'персик', 'банан']; - -function contains(array, value) { - return array.some(v => value === v); -} - -contains(fruits, 'вишня'); // вертає false -contains(fruits, 'банан'); // вертає true</pre> - -<h3 id="Зведення_всякого_значення_до_Boolean">Зведення всякого значення до Boolean</h3> - -<pre class="brush: js">var TRUTHY_VALUES = [true, 'true', 1]; - -function getBoolean(value) { - 'use strict'; - - if (typeof value === 'string') { - value = value.toLowerCase().trim(); - } - - return TRUTHY_VALUES.some(function(t) { - return t === value; - }); -} - -getBoolean(false); // вертає false -getBoolean('false'); // вертає false -getBoolean(1); // вертає true -getBoolean('true'); // вертає true</pre> - -<h2 id="Запасний_варіант_поліфіл">Запасний варіант (поліфіл)</h2> - -<p>Цей метод було стандартизовано 5-им випуском ECMA-262. Для рушіїв, що не мають підтримки цього метода, стане в пригоді наведене нижче рішення. Цей алгоритм аналогічно відповідає вимогам 5-го випуску ECMA-262 за умови, що {{jsxref("Object")}} і {{jsxref("TypeError")}} не було змінено, а виклик <code>callback.call()</code> відповідає очікуваному {{jsxref("Function.prototype.call()")}}:</p> - -<pre class="brush: js">// Production steps of ECMA-262, Edition 5, 15.4.4.17 -// Reference: http://es5.github.io/#x15.4.4.17 -if (!Array.prototype.some) { - Array.prototype.some = function(fun, thisArg) { - 'use strict'; - - if (this == null) { - throw new TypeError('Array.prototype.some called on null or undefined'); - } - - if (typeof fun !== 'function') { - throw new TypeError(); - } - - var t = Object(this); - var len = t.length >>> 0; - - for (var i = 0; i < len; i++) { - if (i in t && fun.call(thisArg, t[i], i, t)) { - return true; - } - } - - return false; - }; -} -</pre> - -<h2 id="Специфікації">Специфікації</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Специфікація</th> - <th scope="col">Статус</th> - <th scope="col">Коментар</th> - </tr> - <tr> - <td>{{SpecName('ES5.1', '#sec-15.4.4.17', 'Array.prototype.some')}}</td> - <td>{{Spec2('ES5.1')}}</td> - <td>Початкова виознака. Запроваджено у JavaScript 1.6.</td> - </tr> - <tr> - <td>{{SpecName('ES6', '#sec-array.prototype.some', 'Array.prototype.some')}}</td> - <td>{{Spec2('ES6')}}</td> - <td></td> - </tr> - <tr> - <td>{{SpecName('ESDraft', '#sec-array.prototype.some', 'Array.prototype.some')}}</td> - <td>{{Spec2('ESDraft')}}</td> - <td></td> - </tr> - </tbody> -</table> - -<h2 id="Підтримка_веб-переглядачами">Підтримка веб-переглядачами</h2> - -<div> -<div class="hidden">Таблиця сумісності на цій сторінці створена зі структурованих даних. Якщо ви хочете долучитися до розробки цих даних, пропонуйте нам свої pull request до репозиторію <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a>.</div> - -<p>{{Compat("javascript.builtins.Array.some")}}</p> -</div> - -<h2 id="Див._також">Див. також</h2> - -<ul> - <li>{{jsxref("Array.prototype.forEach()")}}</li> - <li>{{jsxref("Array.prototype.every()")}}</li> - <li>{{jsxref("Array.prototype.find()")}}</li> - <li>{{jsxref("TypedArray.prototype.some()")}}</li> -</ul> |