aboutsummaryrefslogtreecommitdiff
path: root/files/uk/web/javascript/reference/global_objects/array/every
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-08 14:43:23 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-08 14:43:23 -0500
commit218934fa2ed1c702a6d3923d2aa2cc6b43c48684 (patch)
treea9ef8ac1e1b8fe4207b6d64d3841bfb8990b6fd0 /files/uk/web/javascript/reference/global_objects/array/every
parent074785cea106179cb3305637055ab0a009ca74f2 (diff)
downloadtranslated-content-218934fa2ed1c702a6d3923d2aa2cc6b43c48684.tar.gz
translated-content-218934fa2ed1c702a6d3923d2aa2cc6b43c48684.tar.bz2
translated-content-218934fa2ed1c702a6d3923d2aa2cc6b43c48684.zip
initial commit
Diffstat (limited to 'files/uk/web/javascript/reference/global_objects/array/every')
-rw-r--r--files/uk/web/javascript/reference/global_objects/array/every/index.html195
1 files changed, 195 insertions, 0 deletions
diff --git a/files/uk/web/javascript/reference/global_objects/array/every/index.html b/files/uk/web/javascript/reference/global_objects/array/every/index.html
new file mode 100644
index 0000000000..4eb5b229f0
--- /dev/null
+++ b/files/uk/web/javascript/reference/global_objects/array/every/index.html
@@ -0,0 +1,195 @@
+---
+title: Array.prototype.every()
+slug: Web/JavaScript/Reference/Global_Objects/Array/every
+tags:
+ - Array
+ - ECMAScript6
+ - JavaScript
+ - Масив
+ - метод
+translation_of: Web/JavaScript/Reference/Global_Objects/Array/every
+---
+<div>{{JSRef}}</div>
+
+<p>Метод <code><strong>every()</strong></code> перевіряє, чи всі елементи масиву відповідають умові, що задана функцією, яка передається як аргумент. Повертає булеве значення.</p>
+
+<pre class="brush: js">function isBigEnough(element, index, array) {
+ return element &gt;= 10;
+}
+
+[12, 5, 8, 130, 44].every(isBigEnough); // false
+[12, 54, 18, 130, 44].every(isBigEnough); // true</pre>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox"><var>arr</var>.every(<var>callback(element[, index[, array]])[, thisArg]</var>)</pre>
+
+<h3 id="Параметри">Параметри</h3>
+
+<dl>
+ <dt><code>callback</code></dt>
+ <dd>Функція, яка перевіряє кожен елемент масиву. Приймає три аргументи:
+ <dl>
+ <dt><font face="consolas, Liberation Mono, courier, monospace"><span style="background-color: rgba(220, 220, 220, 0.5);">element</span></font></dt>
+ <dd>Поточний елемент, який обробляється в масиві.</dd>
+ <dt><code>index</code> {{Optional_inline}}</dt>
+ <dd>Індекс поточного елемента, який обробляється в масиві.</dd>
+ <dt><code>array</code> {{Optional_inline}}</dt>
+ <dd>Масив для якого був викликаний метод <code>every</code>.</dd>
+ </dl>
+ </dd>
+ <dt><code>thisArg</code>{{Optional_inline}}</dt>
+ <dd>Значення, що використовується як <code>this</code> при виконанні <code>callback</code>.</dd>
+</dl>
+
+<h3 id="Вертає">Вертає</h3>
+
+<p><code><strong>true</strong></code>, якщо функція callback повернула {{Glossary("truthy", "правдиве")}} значення для кожного елементу масиву; інакше, <code><strong>false</strong></code>.</p>
+
+<h2 id="Опис">Опис</h2>
+
+<p>Метод <code>every</code> виконує функцію <code>callback</code> один раз для кожного елементу масиву поки не знайдено хоча б один елемент, функція <code>callback</code> якого повертає {{Glossary("falsy", "хибне")}} значення. Якщо такий елемент знайдено, метод <code>every </code>одразу повертає <code>false</code>. В іншому ж випадку, якщо функція <code>callback</code> повернула {{Glossary("truthy", "правдиве")}} значення для усіх елементів, <code>every</code> повертає <code>true</code>.  Функція <code>callback</code> викликається тільки для тих індексів масиву, які мають присвоєні значення; вона не викликається для тих індексів, котрі були видалені або котрим ніколи не присвоювалися значення.</p>
+
+<p>Функція <code>callback</code> викликається з трьома аргументами: значення елементу, індекс елементу в масиві і масив по якому робиться перебір.</p>
+
+<p>Якщо параметр <code>thisArg</code> переданий в <code>every</code>, то він буде використовуватися функцією <code>callback</code> як значення <code>this</code>, коли та буде викликана. В іншому випадку буде передано значення <code>undefined</code> як її значення <code>this</code>. Значення <code>this</code> зрештою видиме для функції <code>callback</code> і визначається відповідно до <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this">звичайних правил для визначення this яке видиме функцією</a>.</p>
+
+<p>Метод <code>every</code> не змінює масив, на якому він був викликаний.</p>
+
+<p>Діапазон елементів, які обробляються методом <code>every()</code> встановлюється перед першим виконанням функції <code>callback</code>. Елементи, які додаються в масив після того, як метод <code>every()</code>був викликаний, не будуть обходитися функцією <code>callback</code>. Якщо існуючі елементи масиву змінилися, то їхні значення, які передаються в функцію <code>callback</code> будуть значеннями на момент обходу їх методом <code>every()</code>; якщо існуючі елементи масиву видалили, то метод <code>every()</code> обходити їх не буде.</p>
+
+<p>Метод <code>every</code> схожий за дією на математичний символ "для кожного <img alt="\forall \!\," src="https://wikimedia.org/api/rest_v1/media/math/render/svg/e06890cf9ed539c62153aee819bfd33584ad57d9">". Зокрема, для порожнього масиву він повертає true. (Всі елементи порожнього набору задовольняють будь-якому заданому стану.)</p>
+
+<h2 id="Приклади">Приклади</h2>
+
+<h3 id="Перевірка_значення_кожного_елементу_масиву">Перевірка значення кожного елементу масиву</h3>
+
+<p>Даний приклад перевіряє чи всі елементи масиву більші ніж 10.</p>
+
+<pre class="brush: js">function isBigEnough(element, index, array) {
+ return element &gt;= 10;
+}
+[12, 5, 8, 130, 44].every(isBigEnough); // false
+[12, 54, 18, 130, 44].every(isBigEnough); // true
+</pre>
+
+<h3 id="Викристання_стрілочних_функцій">Викристання стрілочних функцій</h3>
+
+<p><a href="/uk/docs/Web/JavaScript/Reference/Functions/Arrow_functions">Стрілочні функції</a> надають коротший синтаксис для такої ж самої перевірки.</p>
+
+<pre class="brush: js">[12, 5, 8, 130, 44].every(x =&gt; x &gt;= 10); // false
+[12, 54, 18, 130, 44].every(x =&gt; x &gt;= 10); // true</pre>
+
+<h2 id="Поліфіл">Поліфіл</h2>
+
+<p>Метод <code>every</code> був доданий до ECMA-262 стандарту у 5-ій версії; як такий він може бути не реалізований в усіх реалізаціях стандарту. Ви можете обійти цю проблему, вставивши наступний код на початку ваших скриптів, що дозволить використовувати метод <code>every</code> у тих версіях, які не підтримують його початково. Цей алгоритм є саме тим, що зазначений у  ECMA-262, 5-ій версії, за умови, що <code>Object</code> і <code>TypeError</code> мають свої первинні значення і що <code>callbackfn.call</code> прирівнюється до первинного значення {{jsxref("Function.prototype.call")}}</p>
+
+<pre class="brush: js">if (!Array.prototype.every) {
+ Array.prototype.every = function(callbackfn, thisArg) {
+ 'use strict';
+ var T, k;
+
+ if (this == null) {
+ throw new TypeError('this дорівнює null або не визначений');
+ }
+
+ // 1. Нехай O буде результатом виклику ToObject з передачею значення
+ // this в якості аргумента.
+ var O = Object(this);
+
+ // 2. Нехай lenValue буде результатом виклику внутрішнього метода O
+ // Get з аргументом "length".
+ // 3. Нехай len буде результатом ToUint32(lenValue).
+ var len = O.length &gt;&gt;&gt; 0;
+
+ // 4. Якщо IsCallable(callbackfn) повертає false, викинути виняток TypeError.
+ if (typeof callbackfn !== 'function') {
+ throw new TypeError();
+ }
+
+ // 5. Якщо thisArg було передано, хай T буде thisArg; інакше хай T буде undefined.
+ if (arguments.length &gt; 1) {
+ T = thisArg;
+ }
+
+ // 6. Нехай k дорівнює 0.
+ k = 0;
+
+ // 7. Повторювати, доки k &lt; len
+ while (k &lt; len) {
+
+ var kValue;
+
+ // а. Нехай Pk буде ToString(k).
+ // Це неявно для операндів LHS оператора in
+ // б. Нехай kPresent буде результатом виклику внутрішнього метода
+ // O HasProperty з аргументом Pk.
+ // Цей крок можна поєднати з в
+ // в. Якщо kPresent дорівнює true, тоді
+ if (k in O) {
+
+ // i. Нехай kValue буде результатом виклику внутрішнього метода
+ // O Get з аргументом Pk.
+ kValue = O[k];
+
+ // ii. Нехай testResult буде результатом виклику внутрішнього метода
+ // callbackfn Call з T в якості значення this і списком аргументів,
+ // який містить kValue, k, та O.
+ var testResult = callbackfn.call(T, kValue, k, O);
+
+ // iii. Якщо ToBoolean(testResult) дорівнює false, повернути false.
+ if (!testResult) {
+ return false;
+ }
+ }
+ k++;
+ }
+ return true;
+ };
+}
+</pre>
+
+<h2 id="Специфікації">Специфікації</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Specification</th>
+ <th scope="col">Status</th>
+ <th scope="col">Comment</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES5.1', '#sec-15.4.4.16', 'Array.prototype.every')}}</td>
+ <td>{{Spec2('ES5.1')}}</td>
+ <td>Початкове визначення. Реалізовано у JavaScript 1.6.</td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES6', '#sec-array.prototype.every', 'Array.prototype.every')}}</td>
+ <td>{{Spec2('ES6')}}</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ESDraft', '#sec-array.prototype.every', 'Array.prototype.every')}}</td>
+ <td>{{Spec2('ESDraft')}}</td>
+ <td></td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
+
+<div class="hidden">
+<p>The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+</div>
+
+<p>{{Compat("javascript.builtins.Array.every")}}</p>
+
+<div id="compat-mobile"></div>
+
+<h2 id="Див._також">Див. також</h2>
+
+<ul>
+ <li>{{jsxref("Array.prototype.forEach()")}}</li>
+ <li>{{jsxref("Array.prototype.some()")}}</li>
+ <li>{{jsxref("TypedArray.prototype.every()")}}</li>
+</ul>