diff options
| author | Ryan Johnson <rjohnson@mozilla.com> | 2021-04-29 16:16:42 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-04-29 16:16:42 -0700 |
| commit | 95aca4b4d8fa62815d4bd412fff1a364f842814a (patch) | |
| tree | 5e57661720fe9058d5c7db637e764800b50f9060 /files/uk/web/javascript/reference/global_objects/array/find/index.html | |
| parent | ee3b1c87e3c8e72ca130943eed260ad642246581 (diff) | |
| download | translated-content-95aca4b4d8fa62815d4bd412fff1a364f842814a.tar.gz translated-content-95aca4b4d8fa62815d4bd412fff1a364f842814a.tar.bz2 translated-content-95aca4b4d8fa62815d4bd412fff1a364f842814a.zip | |
remove retired locales (#699)
Diffstat (limited to 'files/uk/web/javascript/reference/global_objects/array/find/index.html')
| -rw-r--r-- | files/uk/web/javascript/reference/global_objects/array/find/index.html | 233 |
1 files changed, 0 insertions, 233 deletions
diff --git a/files/uk/web/javascript/reference/global_objects/array/find/index.html b/files/uk/web/javascript/reference/global_objects/array/find/index.html deleted file mode 100644 index a08566da73..0000000000 --- a/files/uk/web/javascript/reference/global_objects/array/find/index.html +++ /dev/null @@ -1,233 +0,0 @@ ---- -title: Array.prototype.find() -slug: Web/JavaScript/Reference/Global_Objects/Array/find -tags: - - Array - - JavaScript - - Method - - Prototype - - polyfill - - Довідка -translation_of: Web/JavaScript/Reference/Global_Objects/Array/find ---- -<div>{{JSRef}}</div> - -<p>Метод <strong><code>find()</code></strong> повертає <strong>значення</strong> <strong>першого елемента </strong>в масиві, що задовільняє передану функцію тестування. Інакше вертається {{jsxref("undefined")}}.</p> - -<p>{{EmbedInteractiveExample("pages/js/array-find.html")}}</p> - -<div class="hidden"> -<p>The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> and send us a pull request.</p> -</div> - -<p>Зверніть увагу також на метод {{jsxref("Array.prototype.findIndex", "findIndex()")}}, що натомість повертає <strong>індекс</strong> знайденого елемента масиву, а не значення.</p> - -<p>Якщо вам необхідно знайти позицію елемента або дізнатись, чи існує елемент в масиві, використовуйте {{jsxref("Array.prototype.indexOf()")}} або {{jsxref("Array.prototype.includes()")}}.</p> - -<h2 id="Синтаксис">Синтаксис</h2> - -<pre class="syntaxbox notranslate"><var>arr.find(callback(element[, index[, array]])[, 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>find</code>.</dd> - </dl> - </dd> - <dt><code>thisArg</code> {{Optional_inline}}</dt> - <dd>Необов'язковий об'єкт, що використовується в якості <code>this</code> при виконанні <code>callback</code>.</dd> -</dl> - -<h3 id="Вертає">Вертає</h3> - -<p><strong>Значення</strong> <strong>першого елемента</strong> в масиві, який задовольняє надану перевірочну функцію. Інакше повертається {{jsxref("undefined")}}.</p> - -<h2 id="Опис">Опис</h2> - -<p>Метод <code>find</code> виконує функцію <code>callback</code> один раз для кожного елемента в масиві, аж поки не буде знайдено такий, для якого <code>callback</code> повертає <a href="/uk/docs/Glossary/Truthy">правдиве значення</a>. Щойно такий елемент знайдено, <code>find</code> одразу ж повертає значення цього елемента. В іншому випадку, <code>find</code> повертає {{jsxref("undefined")}}. Функція <code>callback</code> викликається для кожного індексу масиву з <code>0</code> по <code>length - 1</code> і виконується для усіх елементів, не лише для тих, які мають присвоєні значення. Це означає, що цей метод може бути менш ефективним для розріджених масивів у порівнянні з методами, які обробляють лише ті, елементи, яким присвоєні значення.</p> - -<p>Функція <code>callback</code> викликається з трьома аргументами: значення елемента, індекс елемента і об'єкт <code>Array</code>, перебір якого здійснюється.</p> - -<p>Якщо параметр <code>thisArg</code> передано до <code>find</code>, його буде використано як <code>this</code> для кожного виклику <code>callback</code>. Якщо його не передано, тоді використовуватиметься {{jsxref("undefined")}}.</p> - -<p>Метод <code>find()</code> не змінює масив, для якого викликається.</p> - -<p>Діапазон елементів, що їх має обробити <code>find</code>, визначається ще до першого виклику функції <code>callback</code>. Тому <code>callback</code> не обробляє елементи, додані до масиву після того, як почалося виконання <code>find</code>. Якщо існуючий, ще не опрацьований елемент масиву, змінюється функцією <code>callback</code>, його значення, що передається до <code>callback</code>, буде значенням на той момент, коли <code>find</code> доходить до індексу цього елемента. Видалені елементи все одно опрацьовуються.</p> - -<h2 id="Приклади">Приклади</h2> - -<h3 id="Знайти_обєкт_в_масиві_за_однією_з_його_властивостей">Знайти об'єкт в масиві за однією з його властивостей</h3> - -<pre class="brush: js notranslate">var inventory = [ - {name: 'яблука', quantity: 2}, - {name: 'банани', quantity: 0}, - {name: 'вишні', quantity: 5} -]; - -function findCherries(fruit) { - return fruit.name === 'вишні'; -} - -console.log(inventory.find(findCherries)); -// виводить { name: 'вишні', quantity: 5 } -</pre> - -<h4 id="Використання_стрілочної_функції_ES2015">Використання стрілочної функції ES2015</h4> - -<pre class="brush: js notranslate">const inventory = [ - {name: 'яблука', quantity: 2}, - {name: 'банани', quantity: 0}, - {name: 'вишні', quantity: 5} -]; - -const result = inventory.find( fruit => fruit.name === 'вишні' ); - -console.log(result) // { name: 'вишні', quantity: 5 } -</pre> - -<h3 id="Знайти_просте_число_у_масиві">Знайти просте число у масиві</h3> - -<p>Наступний приклад знаходить елемент у масиві, який є простим числом (або повертає {{jsxref("undefined")}}, якщо простого числа немає):</p> - -<pre class="brush: js notranslate">function isPrime(element, index, array) { - var start = 2; - while (start <= Math.sqrt(element)) { - if (element % start++ < 1) { - return false; - } - } - return element > 1; -} - -[4, 6, 8, 12].find(isPrime); // вертає undefined, простих чисел не знайдено -[4, 5, 8, 12].find(isPrime); // вертає 5 -</pre> - -<p>Наступні приклади демонструють, що неіснуючі та видалені елементи теж опрацьовуються, і що значення, передане до функції зворотного виклику - це їхнє значення на момент перевірки.</p> - -<pre class="brush: js notranslate">// Створити масив без елементів за індексами 2, 3 та 4 -const array = [0,1,,,,5,6]; - -// Виводить всі індекси, не лише ті, які мають присвоєні значення -array.find(function(value, index) { - console.log('Індекс ' + index + ' має значення ' + value); -}); - -// Виводить всі індекси, в тому числі видалені -array.find(function(value, index) { - - // Видалити елемент 5 в першій ітерації - if (index == 0) { - console.log('Видалення елемента array[5] зі значенням ' + array[5]); - delete array[5]; - } - // Елемент 5 перевіряється, хоч і був видалений - console.log('Індекс ' + index + ' має значення ' + value); -}); -// очікуваний результат: -// Видалення елемента array[5] зі значенням 5 -// Індекс 0 має значення 0 -// Індекс 1 має значення 1 -// Індекс 2 має значення undefined -// Індекс 3 має значення undefined -// Індекс 4 має значення undefined -// Індекс 5 має значення undefined -// Індекс 6 має значення 6 -</pre> - -<h2 id="Запасний_варіант_поліфіл">Запасний варіант (поліфіл)</h2> - -<p>Цей метод був доданий у ECMAScript 2015, тож, можливо, поки наявний не у всякій реалізації JavaScript. Проте, ви можете використати наступний код для забезпечення запасного варіанту <code>Array.prototype.find</code>:</p> - -<pre class="brush: js notranslate">// https://tc39.github.io/ecma262/#sec-array.prototype.find -if (!Array.prototype.find) { - Object.defineProperty(Array.prototype, 'find', { - value: function(predicate) { - // 1. Нехай O дорівнює ? ToObject(this value). - if (this == null) { - throw new TypeError('"this" is null or not defined'); - } - - var o = Object(this); - - // 2. Нехай len дорівнює ? ToLength(? Get(O, "length")). - var len = o.length >>> 0; - - // 3. Якщо IsCallable(predicate) дорівнює false, викинути виняток TypeError. - if (typeof predicate !== 'function') { - throw new TypeError('предикат має бути функцією'); - } - - // 4. Якщо надано thisArg, нехай T дорівнює thisArg; інакше нехай T дорівнює undefined. - var thisArg = arguments[1]; - - // 5. Нехай k дорівнює 0. - var k = 0; - - // 6. Повторювати, поки k < len - while (k < len) { - // a. Нехай Pk дорівнює ! ToString(k). - // b. Нехай kValue дорівнює ? Get(O, Pk). - // c. Нехай testResult дорівнює ToBoolean(? Call(predicate, T, « kValue, k, O »)). - // d. Якщо testResult дорівнює true, повернути kValue. - var kValue = o[k]; - if (predicate.call(thisArg, kValue, k, o)) { - return kValue; - } - // e. Збільшити k на 1. - k++; - } - - // 7. Повернути undefined. - return undefined; - } - }); -} -</pre> - -<p>Якщо вам потрібно забезпечити підтримку вкрай застарілих рушіїв JavaScript, в яких відсутня підтримка <code><a href="/uk/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty">Object.defineProperty</a></code>, було б краще взагалі не додавати методів до <code>Array.prototype</code> через відсутність можливості заборонити їх перебір.</p> - -<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('ES2015', '#sec-array.prototype.find', 'Array.prototype.find')}}</td> - <td>{{Spec2('ES2015')}}</td> - <td>Первинне визначення.</td> - </tr> - <tr> - <td>{{SpecName('ESDraft', '#sec-array.prototype.find', 'Array.prototype.find')}}</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.find")}}</p> - -<h2 id="Див._також">Див. також</h2> - -<ul> - <li>{{jsxref("Array.prototype.findIndex()")}}</li> - <li>{{jsxref("Array.prototype.every()")}}</li> -</ul> |
