chore(i18n,learn): processed translations (#49013)

This commit is contained in:
camperbot
2023-01-13 23:18:11 +05:30
committed by GitHub
parent a868d3d41f
commit 7c5f992f04
118 changed files with 573 additions and 573 deletions

View File

@@ -1,6 +1,6 @@
---
id: 587d7b87367417b2b2512b41
title: Оголосіть змінну, доступну лише для читання, з ключовим словом Const
title: Оголошення змінної для читання з ключовим словом const
challengeType: 1
forumTopicId: 301201
dashedName: declare-a-read-only-variable-with-the-const-keyword
@@ -10,57 +10,57 @@ dashedName: declare-a-read-only-variable-with-the-const-keyword
Ключове слово `let` є не єдиним новим способом оголосити змінну. В ES6 можливо також оголосити змінні, використовуючи ключове слово `const`.
У `const` є ті ж круті функції, що й в `let` з приємним бонусом тепер змінні, оголошені за допомогою `const`, доступні лише для читання. Вони мають константне значення. Тобто, як тільки змінна стає призначеною `const`, її вже неможливо призначити знову:
`const` має ті ж круті функції, що й `let`, але з бонусом: тепер змінні, оголошені за допомогою `const`, доступні лише для читання. Вони мають константне значення, тобто після присвоєння змінної з `const`, її неможливо присвоїти знову:
```js
const FAV_PET = "Cats";
FAV_PET = "Dogs";
```
Консоль показуватиме помилку через перепризначення значення `FAV_PET`.
Консоль показуватиме помилку через повторне присвоєння значення `FAV_PET`.
Змінні, які не передбачають перепризначення, слід називати, використовуючи ключове слово `const`. Це може знадобитися, якщо ви випадково спробуєте перепризначити змінну, яка повинна бути константною.
Змінні, які не передбачають повторного присвоєння, потрібно називати, використовуючи ключове слово `const`. Це може знадобитися, якщо ви випадково спробуєте повторно присвоїти змінну, яка повинна залишатись константною.
**Note:** It is common for developers to use uppercase variable identifiers for immutable values and lowercase or camelCase for mutable values (objects and arrays). You will learn more about objects, arrays, and immutable and mutable values in later challenges. Also in later challenges, you will see examples of uppercase, lowercase, or camelCase variable identifiers.
**Примітка:** зазвичай розробники використовують ідентифікатори змінних у верхньому регістрі для незмінних значень та у нижньому регістрі чи верблюдячомуРегістрі для змінних значень (об’єктів чи масивів). Ви дізнаєтесь більше про об’єкти, масиви, а також змінні та незмінні значення в наступних завданнях. Також ви побачите приклади ідентифікаторів змінних у верхньому регістрі, нижньому регістрі та верблюдячомуРегістрі.
# --instructions--
Change the code so that all variables are declared using `let` or `const`. Use `let` when you want the variable to change, and `const` when you want the variable to remain constant. Also, rename variables declared with `const` to conform to common practices. Do not change the strings assigned to the variables.
Змініть код так, щоб усі змінні були оголошені за допомогою `let` або `const`. Використайте `let` для змінних значень, а `const` для незмінних значень. Крім того, перейменуйте змінні, оголошені за допомогою `const`, щоб відповідати загальним практикам. Не змінюйте рядки, які присвоєні змінним.
# --hints--
`var` should not exist in your code.
`var` повинне бути відсутнім у коді.
```js
assert.notMatch(code, /var/g);
```
You should change `fCC` to all uppercase.
Ви повинні змінити `fCC` на верхній регістр.
```js
assert.match(code, /(FCC)/);
assert.notMatch(code, /(fCC)/);
```
`FCC` should be a constant variable declared with `const`.
`FCC` повинна бути константною змінною, оголошеною з `const`.
```js
assert.match(code, /const\s+FCC/);
```
The string assigned to `FCC` should not be changed.
Не потрібно змінювати рядок, присвоєний до `FCC`.
```js
assert.equal(FCC, 'freeCodeCamp');
```
`fact` should be declared with `let`.
`fact` повинна бути оголошеною із `let`.
```js
assert.match(code, /(let\s+fact)/g);
```
`console.log` should be changed to print the `FCC` and `fact` variables.
`console.log` потрібно змінити так, щоб виводились змінні `FCC` та `fact`.
```js
assert.match(code, /console\.log\(\s*FCC\s*\,\s*fact\s*\)\s*;?/g);

View File

@@ -1,6 +1,6 @@
---
id: 56533eb9ac21ba0edf2244b5
title: Уникнення літературних цитат в рядках
title: Порятунок цитат у рядках
challengeType: 1
videoUrl: 'https://scrimba.com/c/c2QvgSr'
forumTopicId: 17568
@@ -9,15 +9,15 @@ dashedName: escaping-literal-quotes-in-strings
# --description--
Коли ви зазначаєте рядок, вам потрібно починати і закінчувати його одинарними або подвійними лапками. Що стається, коли ви потребуєте літературну цитату `"` or `'` всередині вашого рядка?
Коли ви визначаєте рядок, він повинен починатися та закінчуватися одинарними або подвійними лапками. Що робити, якщо всередині рядка потрібно написати цитату в `"` чи `'`?
В JavaScript, ви можете <dfn>вийти</dfn> з цитати і розглядати її як кінець рядка лапки, розмістивши <dfn>зворотнього слешу</dfn> (`\`) перед лапкою.
У JavaScript можна <dfn>уникнути</dfn> непотрібного завершення рядка, написавши <dfn>зворотну косу риску</dfn> (`\`) на початку цитати.
```js
const sampleStr = "Alan said, \"Peter is learning JavaScript\".";
```
Це сигнали для JavaScript про те, що така цитата не є кінцевим рядком, а повинна з'явитися всередині рядка. Тому якщо ви введете це в консолі, то отримаєте:
Це повідомляє JavaScript про те, що цитата не є кінцем рядка, а повинна зявитися всередині рядка. Якщо ви надрукуєте це на консолі, то отримаєте:
```js
Alan said, "Peter is learning JavaScript".
@@ -25,7 +25,7 @@ Alan said, "Peter is learning JavaScript".
# --instructions--
Використовуйте <dfn>косі риски</dfn> щоб зазначити для рядка змінну `myStr`, і таким чином ввівши її на консолі, побачите:
Використайте <dfn>зворотні косі риски</dfn>, щоб присвоїти рядок до змінної `myStr` та при виводі на консоль ви бачили наступне:
```js
I am a "double quoted" string inside "double quotes".
@@ -33,13 +33,13 @@ I am a "double quoted" string inside "double quotes".
# --hints--
Вам слід використовувати дві подвійні лапки (`"`) і чотири подвійні лапки (`\"`).
Ви повинні використати дві подвійні лапки (`"`) та чотири екрановані подвійні лапки (`\"`).
```js
assert(code.match(/\\"/g).length === 4 && code.match(/[^\\]"/g).length === 2);
```
Variable `myStr` should contain the string: `I am a "double quoted" string inside "double quotes".`
Змінна `myStr` повинна містити рядок `I am a "double quoted" string inside "double quotes".`
```js
assert(/I am a "double quoted" string inside "double quotes(\."|"\.)$/.test(myStr));

View File

@@ -1,6 +1,6 @@
---
id: 56533eb9ac21ba0edf2244db
title: Вступ до інструкцій «else if»
title: Вступ до інструкцій else if
challengeType: 1
videoUrl: 'https://scrimba.com/c/caeJ2hm'
forumTopicId: 18206

View File

@@ -1,6 +1,6 @@
---
id: 56533eb9ac21ba0edf2244da
title: Вступ до інструкцій «else»
title: Вступ до інструкцій else
challengeType: 1
videoUrl: 'https://scrimba.com/c/cek4Efq'
forumTopicId: 18207

View File

@@ -1,6 +1,6 @@
---
id: 5675e877dbd60be8ad28edc6
title: Ітерація через масив за допомогою циклу For
title: Ітерація масиву за допомогою циклу for
challengeType: 1
videoUrl: 'https://scrimba.com/c/caeR3HB'
forumTopicId: 18216
@@ -9,7 +9,7 @@ dashedName: iterate-through-an-array-with-a-for-loop
# --description--
Ітерація через вміст масиву є поширеною задачею у JavaScript. Це можна робити за допомогою циклу `for`. Цей код буде виводити кожен елемент масиву `arr` на консоль:
У JavaScript часто доводиться перебрати вміст масиву. Це можна зробити за допомогою циклу `for`. Цей код виводитиме кожен елемент масиву `arr` на консоль:
```js
const arr = [10, 9, 8, 7, 6];
@@ -19,11 +19,11 @@ for (let i = 0; i < arr.length; i++) {
}
```
Пам'ятайте, що масиви мають індексацію, яка рахується від нуля і це означає, що останній індекс масиву - це `length - 1`. Нашою умовою для цього циклу є `i < arr.length`, який зупиняє цикл, коли `i` дорівнює `length`. У цьому випадку останньою ітерацією є `i === 4`, тобто коли `i` дорівнює `arr.length - 1` і виводить `6` на консоль. Тоді `i` збільшується на `5`, і цикл закінчується тому, що код `i < arr.length` є `false`.
Пам'ятайте, що масиви мають індексацію на основі нуля і це означає, що останнім індексом масиву є `length - 1`. Нашою умовою для цього циклу є `i < arr.length`, який зупиняє цикл, коли `i` дорівнює `length`. У цьому випадку останньою ітерацією є `i === 4`, тобто коли `i` дорівнює `arr.length - 1` і виводить `6` на консоль. Тоді `i` збільшується до `5`, і цикл закінчується через те, що `i < arr.length` є `false`.
# --instructions--
Оголосіть та ініціалізуйте змінну `total` до `0`. Використовуйте цикл `for` для додавання значення кожного елементу масиву `myArr` до `total`.
Оголосіть та ініціалізуйте змінну `total` до `0`. Використайте цикл `for`, щоб додати значення кожного елемента масиву `myArr` до `total`.
# --hints--
@@ -39,13 +39,13 @@ assert(code.match(/(var|let|const)\s*?total\s*=\s*0.*?;?/));
assert(total === 20);
```
Слід використовувати цикл `for` для ітерації через `myArr`.
Ви повинні використати цикл `for`, щоб перебрати `myArr`.
```js
assert(/for\s*\(/g.test(code) && /myArr\s*\[/g.test(code));
```
Не потрібно намагатися напряму призначити `total` значення 20.
Не потрібно намагатися напряму присвоїти значення 20 до `total`.
```js
assert(!__helpers.removeWhiteSpace(code).match(/total[=+-]0*[1-9]+/gm));

View File

@@ -1,6 +1,6 @@
---
id: 5a2efd662fb457916e1fe604
title: Ітерація з "do...while" циклами, JavaScript
title: Ітерація з циклами do...while у JavaScript
challengeType: 1
videoUrl: 'https://scrimba.com/c/cDqWGcp'
forumTopicId: 301172
@@ -9,7 +9,7 @@ dashedName: iterate-with-javascript-do---while-loops
# --description--
Наступний вид циклів, який ви вивчите, називається `do...while` циклом. Він називається `do...while` циклом, тому що, спочатку, не зважаючи ні на що, він `do` (робить) одну передачу коду, а потім продовжує виконувати цикл `while` поки вказана умова обчислюється до `true`.
Наступним ви вивчите цикл `do...while`. Цикл `do...while` називається так, бо спочатку він щось виконує у коді (`do`), а потім продовжує цикл (`while`), доки умова не становитиме `true`.
```js
const ourArray = [];
@@ -21,7 +21,7 @@ do {
} while (i < 5);
```
Приклад вище поводиться аналогічно з іншими типами циклів, і результуючий масив буде виглядати як `[0, 1, 2, 3, 4]`. Однак, що відрізняє `do...while` від інших циклів, так це те, як він поводиться, коли умова підводить при першій перевірці. Let's see this in action. Here is a regular `while` loop that will run the code in the loop as long as `i < 5`:
Наведений вище приклад поводиться подібно до інших типів циклів, і кінцевий масив матиме такий вигляд: `[0, 1, 2, 3, 4]`. Однак цикл `do...while` відрізняється від інших циклів своєю поведінкою, коли умова не відповідає першій перевірці. Розглянемо на дії. Ось звичайний цикл `while`, який запускає код за умови, що `i < 5`:
```js
const ourArray = [];
@@ -33,7 +33,7 @@ while (i < 5) {
}
```
У цьому прикладі ми ініціалізуємо значення `ourArray` до порожнього масиву і значення `i` до 5. Коли ми виконуємо `while` цикл, умова обчислюється до `false`, тому що `i` не менше ніж 5, таким чином ми не виконуємо код всередині циклу. Результатом є те, що до `ourArray` не буде додано ніяких значень і він все ще виглядатиме, як `[]`, коли всі коди, в наведеному вище прикладі, вже завершили роботу. А зараз погляньте на `do...while` цикл:
У цьому прикладі ми ініціалізуємо значення `ourArray` до порожнього масиву і значення `i` до 5. Коли ми виконуємо цикл `while`, умова обчислюється як `false`, оскільки `i` не менше за 5, тому ми не виконуємо код всередині циклу. Результатом є те, що `ourArray` не матиме доданих значень і досі виглядатиме як `[]`, коли весь код у прикладі вище вже завершить виконання. А зараз погляньте на цикл `do...while`:
```js
const ourArray = [];
@@ -45,11 +45,11 @@ do {
} while (i < 5);
```
У цьому випадку, ми ініціалізуємо значення `i` до 5, так само, як ми зробили з `while` циклом. Коли ми доходимо до наступного рядка, то бачимо, що умови для обчислення немає. Таким чином, ми рухаємось до коду, що знаходиться у фігурних дужках, і виконуємо його. Ми додамо єдиний елемент до масиву, а потім збільшимо `i` перед тим, як перейти до перевірки умови. Коли ми нарешті обчислимо умову `i < 5` в останньому рядку, ми побачимо, що зараз `i` становить 6, що провалює перевірку умови. Тому, ми виходимо з циклу і завершуємо роботу. Наприкінці наведеного вище прикладу, значення `ourArray` становить `[5]`. В цілому, `do...while` цикл гарантує те, що код всередині циклу буде виконуватися принаймні один раз. Давайте спробуємо підготувати `do...while` цикл до роботи, висуваючи значення до масиву.
У цьому випадку ми ініціалізуємо значення `i` до 5, так само, як ми зробили з циклом `while`. Коли ми доходимо до наступного рядка, то бачимо, що немає умови, тому ми переходимо до коду у фігурних дужках та виконуємо його. Ми додамо один елемент до масиву та збільшимо `i` перед тим, як перейти до перевірки умови. Коли ми обчислимо умову `i < 5` в останньому рядку, ми побачимо, що зараз `i` дорівнює 6 та не проходить перевірку умови, тому ми виходимо з циклу і завершуємо роботу. В кінці вищеподаного прикладу, значення `ourArray` становить `[5]`. По суті, цикл `do...while` гарантує те, що код всередині циклу виконається принаймні один раз. Спробуємо заставити цикл `do...while` працювати, передаючи значення до масиву.
# --instructions--
В коді змініть `while` цикл на `do...while` цикл і він висуватиме лише число `10` до `myArray`, а `i` буде дорівнювати `11`, коли код закінчить роботу.
Змініть цикл `while` у коді на цикл `do...while` так, щоб цикл передавав лише число `10` до `myArray`, та `i` дорівнювала `11`, коли код закінчить виконання.
# --hints--
@@ -65,7 +65,7 @@ assert(code.match(/do/g));
assert.deepEqual(myArray, [10]);
```
`i` повинне дорівнювати `11`
`i` повинна дорівнювати `11`
```js
assert.equal(i, 11);

View File

@@ -1,6 +1,6 @@
---
id: cf1111c1c11feddfaeb5bdef
title: Ітерація для циклів з JavaScript
title: Ітерація з циклами for у JavaScript
challengeType: 1
videoUrl: 'https://scrimba.com/c/c9yNVCe'
forumTopicId: 18219
@@ -9,21 +9,21 @@ dashedName: iterate-with-javascript-for-loops
# --description--
Ви можете виконати один і той самий код декілька разів, використовуючи цикл.
Ви можете виконати один і той самий код декілька разів за допомогою циклу.
Найбільш поширеним типом JavaScript циклу є `for` цикл, тому що він виконується протягом певної кількості разів.
Найпоширенішим типом циклу в JavaScript є `for`, оскільки він виконується певну кількість разів.
For-цикли визнано трьома додатковими виразами, які розділені крапкою з комою:
Цикли for оголошуються з трьома додатковими виразами, які розділені крапкою з комою:
`for (a; b; c)`, де `a` — це твердження ініціалізації, `b` — твердження умови, а `c` — остаточний вираз.
`for (a; b; c)`, де `a` є інструкцією ініціалізації, `b` є інструкцією умови, а `c` є кінцевим виразом.
Твердження ініціалізації виконується лише один раз, перед початком циклу. Воно переважно використовується для визначення і налаштування змінної циклу.
Інструкція ініціалізації виконується лише один раз (перед початком циклу). Її переважно використовують, щоб визначити та налаштувати змінну циклу.
Твердження умови обчислюється на початку кожної ітерації циклу і продовжуватиметься до тих пір, поки не обчислиться до `true`. Коли, на початку ітерації, умова становить `false`, цикл припинить виконуватись. Це означає те, що якщо умова починається як "false", ваш цикл ніколи не виконається.
Інструкція умови обчислюється на початку кожної ітерації циклу і продовжуватиметься до тих пір, поки не обчислиться до `true`. Коли на початку ітерації умова становить `false`, цикл припинить виконуватись. Це означає те, що якщо умова починається як «false», ваш цикл ніколи не виконається.
Остаточний вираз виконується наприкінці кожної ітерації циклу, перед перевіркою наступної умови і, зазвичай, використовується для того, щоб збільшити або зменшити лічильник циклу.
Кінцевий вираз виконується в кінці кожної ітерації циклу, перед перевіркою наступної умови і, зазвичай, використовується для того, щоб збільшити або зменшити лічильник.
У наступному прикладі ми ініціалізуємо та ітеруємо `i = 0` допоки наша умова `i < 5` не буде правильною. Ми збільшимо `i` на `1` у кожній ітерації циклу `i++` у ролі нашого остаточного виразу.
У наступному прикладі ми ініціалізуємо з `i = 0` та ітеруємо, доки наша умова `i < 5` не буде істинною. Ми збільшимо `i` на `1` у кожній ітерації циклу з кінцевим виразом `i++`.
```js
const ourArray = [];
@@ -33,11 +33,11 @@ for (let i = 0; i < 5; i++) {
}
```
`ourArray` тепер матиме значення `[0, 1, 2, 3, 4]`.
Тепер `ourArray` матиме значення `[0, 1, 2, 3, 4]`.
# --instructions--
Використовуйте `for` цикл для того, щоб перемістити значення 1 через 5 на `myArray`.
Використайте цикл `for`, щоб передати значення від 1 до 5 до `myArray`.
# --hints--

View File

@@ -1,6 +1,6 @@
---
id: cf1111c1c11feddfaeb1bdef
title: Ітерація циклів JavaScript
title: Ітерація з циклами while у JavaScript
challengeType: 1
videoUrl: 'https://scrimba.com/c/c8QbnCM'
forumTopicId: 18220
@@ -9,7 +9,7 @@ dashedName: iterate-with-javascript-while-loops
# --description--
Завдяки циклу, Ви можете запустити той самий код декілька разів.
Ви можете виконати один і той самий код декілька разів за допомогою циклу.
Перший тип циклу, який ми вивчатимемо, називається `while`, оскільки виконується за заданою істинною умовою і припиняється, як тільки ця умова більше не буде істинною.
@@ -23,9 +23,9 @@ while (i < 5) {
}
```
У прикладі вище коду цикл `while` виконуватиметься 5 разів і додаватиме числа від 0 до 4 до `ourArray`.
У вищеподаному прикладі цикл `while` виконуватиметься 5 разів і додаватиме числа від 0 до 4 до `ourArray`.
Спробуймо підготувати цикл while до роботи, розміщуючи значення в масиві даних.
Спробуємо заставити цикл while працювати, передаючи значення до масиву.
# --instructions--

View File

@@ -1,6 +1,6 @@
---
id: 5690307fddb111c6084545d7
title: Логічна послідовність в інструкції «if else»
title: Логічна послідовність в інструкції if else
challengeType: 1
videoUrl: 'https://scrimba.com/c/cwNvMUV'
forumTopicId: 18228

View File

@@ -1,6 +1,6 @@
---
id: 56533eb9ac21ba0edf2244b4
title: Цитування рядків з одинарними лапками
title: Цитування рядків одинарними лапками
challengeType: 1
videoUrl: 'https://scrimba.com/c/cbQmnhM'
forumTopicId: 18260

View File

@@ -1,6 +1,6 @@
---
id: 56533eb9ac21ba0edf2244e0
title: Заміна ланцюжків «if else» на switch
title: Заміна ланцюжків if else на switch
challengeType: 1
videoUrl: 'https://scrimba.com/c/c3JE8fy'
forumTopicId: 18266

View File

@@ -1,6 +1,6 @@
---
id: 56533eb9ac21ba0edf2244c4
title: Повернення початкового шаблона для функцій
title: Повернення початкового шаблону функцій
challengeType: 1
videoUrl: 'https://scrimba.com/c/cQe39Sq'
forumTopicId: 18272
@@ -9,9 +9,9 @@ dashedName: return-early-pattern-for-functions
# --description--
Коли ви досягнули команди `return`, виконання поточної функції припиняється і об'єкт керування повертається до місця виклику.
Коли досягається інструкція `return`, виконання поточної функції припиняється, а керування повертається до місця, де було викликано функцію.
**Наприклад**
**Приклад**
```js
function myFun() {
@@ -22,54 +22,54 @@ function myFun() {
myFun();
```
Показане вище відобразить рядок `Hello` у консолі і поверне рядок `World`. Рядок `byebye` ніколи не відобразиться у консолі, тому що функція виходить з команди `return`.
Вищеподане покаже рядок `Hello` на консолі та поверне рядок `World`. Рядок `byebye` ніколи не зобразиться на консолі, оскільки функція виходить з інструкції `return`.
# --instructions--
Модифікуйте функцію `abTest` і тому, якщо `a` або `b` дорівнюватиме менше `0`, функція відразу вийде зі значенням `undefined`.
Змініть функцію `abTest` таким чином, що коли `a` або `b` буде менше за `0`, функція одразу вийде зі значенням `undefined`.
**Hint**
Remember that <a href="https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/basic-javascript/understanding-uninitialized-variables" target="_blank" rel="noopener noreferrer nofollow"><code>undefined</code> is a keyword</a>, not a string.
**Підказка**
Пам’ятайте, що <a href="https://www.freecodecamp.org/ukrainian/learn/javascript-algorithms-and-data-structures/basic-javascript/understanding-uninitialized-variables" target="_blank" rel="noopener noreferrer nofollow"><code>undefined</code> є ключовим словом</a>, а не рядком.
# --hints--
`abTest(2, 2)` повинен повернути число
`abTest(2, 2)` повинна повертати число
```js
assert(typeof abTest(2, 2) === 'number');
```
`abTest(2, 2)` повинен повернути `8`
`abTest(2, 2)` повинна повертати `8`
```js
assert(abTest(2, 2) === 8);
```
`abTest(-2, 2)` повинен повернути `undefined`
`abTest(-2, 2)` повинна повертати `undefined`
```js
assert(abTest(-2, 2) === undefined);
```
`abTest(2, -2)` повинен повернути `undefined`
`abTest(2, -2)` повинна повертати `undefined`
```js
assert(abTest(2, -2) === undefined);
```
`abTest(2, 8)` повинен повернути `18`
`abTest(2, 8)` повинна повертати `18`
```js
assert(abTest(2, 8) === 18);
```
`abTest(3, 3)` повинен повернути `12`
`abTest(3, 3)` повинна повертати `12`
```js
assert(abTest(3, 3) === 12);
```
`abTest(0, 0)` повинен повернути `0`
`abTest(0, 0)` повинна повертати `0`
```js
assert(abTest(0, 0) === 0);

View File

@@ -1,6 +1,6 @@
---
id: 5679ceb97cbaa8c51670a16b
title: Повернення логічних значень з функцій
title: Повернення булевих значень із функцій
challengeType: 1
videoUrl: 'https://scrimba.com/c/cp62qAQ'
forumTopicId: 18273
@@ -9,9 +9,9 @@ dashedName: returning-boolean-values-from-functions
# --description--
You may recall from <a href="/learn/javascript-algorithms-and-data-structures/basic-javascript/comparison-with-the-equality-operator" target="_blank" rel="noopener noreferrer nofollow">Comparison with the Equality Operator</a> that all comparison operators return a boolean `true` or `false` value.
Як ви можете пригадати з <a href="/ukrainian/learn/javascript-algorithms-and-data-structures/basic-javascript/comparison-with-the-equality-operator" target="_blank" rel="noopener noreferrer nofollow">порівняння з оператором «дорівнює»</a>, всі оператори порівняння повертають булеве значення `true` або `false`.
Інколи люди використовують `if/else` команду для того, щоб зробити порівняння на зразок цього:
Іноді люди використовують інструкцію `if/else`, щоб виконати порівняння:
```js
function isEqual(a, b) {
@@ -23,7 +23,7 @@ function isEqual(a, b) {
}
```
Але є кращий спосіб це зробити. Оскільки `===` повертає `true` або `false`, ми можемо повернути результат порівняння:
Але існує кращий спосіб. Оскільки `===` повертає `true` або `false`, ми можемо повернути результат порівняння:
```js
function isEqual(a, b) {
@@ -33,23 +33,23 @@ function isEqual(a, b) {
# --instructions--
Виправте функцію `isLess` для того, щоб видалити `if/else` команду.
Виправте функцію `isLess` так, щоб видалити інструкції `if/else`.
# --hints--
`isLess(10, 15)` повинен повернути `true`
`isLess(10, 15)` повинна повертати `true`
```js
assert(isLess(10, 15) === true);
```
`isLess(15, 10)` повинен повернути `false`
`isLess(15, 10)` повинна повертати `false`
```js
assert(isLess(15, 10) === false);
```
Вам не слід використовувати будь-які `if` чи `else` команди
Ви не повинні використовувати інструкції `if` або `else`
```js
assert(!/if|else/g.test(code));

View File

@@ -1,6 +1,6 @@
---
id: 56533eb9ac21ba0edf2244dd
title: Вибір з багатьох опцій за допомогою перемикачів
title: Вибір із багатьох варіантів за допомогою інструкцій switch
challengeType: 1
videoUrl: 'https://scrimba.com/c/c4mv4fm'
forumTopicId: 18277
@@ -9,9 +9,9 @@ dashedName: selecting-from-many-options-with-switch-statements
# --description--
Якщо у вас є багато опцій для вибору, використовуйте команду <dfn>switch</dfn>. `switch` тести на значення і може мати багато <dfn> випадків </dfn> інструкцій, які визначають різні значення. Інструкції виконуються від першого узгодженого значення `case<code> до тих пір, поки <code>break<code> не відбудиться.</p>
Якщо ви маєте багато варіантів для вибору, використовуйте інструкцію <dfn>switch</dfn>. Інструкція `switch` тестує значення та може мати багато інструкцій <dfn>case</dfn>, які визначають можливі значення. Інструкції виконуються від першого відповідного значення `case` до тих пір, поки не зіткнуться із `break`.
<p spaces-before="0">Ось наводиться приклад інструкції <code>switch`:
Ось приклад інструкції `switch`:
```js
switch (lowercaseLetter) {
@@ -24,11 +24,11 @@ switch (lowercaseLetter) {
}
```
`case` значень перевіряється абсолютною рівністю (`===`). `break` пропонує JavaScript припинити виконання інструкцій. Якщо `break` пропущений, тоді наступна команда буде виконуватись.
Значення `case` перевіряються за допомогою строгої рівності (`===`). `break` вказує JavaScript зупинити запущені інструкції. Якщо пропустити `break`, виконується наступна інструкція.
# --instructions--
Напишіть команду switch, щоб встановити `answer` за наступних умов:
Напишіть інструкцію switch, яка перевіряє `val` та встановлює `answer` для наступних умов:
`1` - `alpha`
`2` - `beta`
`3` - `gamma`
@@ -36,31 +36,31 @@ switch (lowercaseLetter) {
# --hints--
`caseInSwitch(1)` повинно відповідати значенню рядка `alpha`
`caseInSwitch(1)` повинна мати значення рядка `alpha`
```js
assert(caseInSwitch(1) === 'alpha');
```
`caseInSwitch(2)` повинно відповідати значенню рядка `beta`
`caseInSwitch(2)` повинна мати значення рядка `beta`
```js
assert(caseInSwitch(2) === 'beta');
```
`caseInSwitch(3)` повинно відповідати значенню рядка `gamma`
`caseInSwitch(3)` повинна мати значення рядка `gamma`
```js
assert(caseInSwitch(3) === 'gamma');
```
`caseInSwitch(4)` повинно відповідати значенню рядка `delta`
`caseInSwitch(4)` повинна мати значення рядка `delta`
```js
assert(caseInSwitch(4) === 'delta');
```
Не варто використовувати `if` або `else` команди
Ви не повинні використовувати інструкції `if` чи `else`
```js
assert(!/else/g.test(code) || !/if/g.test(code));

View File

@@ -11,13 +11,13 @@ dashedName: shopping-list
Створіть список покупок у змінній `myList`. Список повинен бути багатовимірним масивом, який містить декілька підмасивів.
Перший елемент у кожному підмасиві повинен містити рядок з назвою одиниці. Другий елемент повинен бути числом, яке відображає кількість.
Перший елемент у кожному підмасиві повинен містити рядок з назвою одиниці. Другим елементом повинне бути число, яке вказує кількість.
```js
["Chocolate Bar", 15]
```
У списку повинно бути щонайменше 5 підмасивів.
У списку повинно бути принаймні 5 підмасивів.
# --hints--
@@ -39,7 +39,7 @@ assert(hasString);
assert(hasNumber);
```
У списку має бути щонайменше 5 одиниць.
У списку повинно бути принаймні 5 одиниць.
```js
assert(count > 4);

View File

@@ -1,6 +1,6 @@
---
id: 56533eb9ac21ba0edf2244c6
title: Стояти в черзі
title: Станьте в чергу
challengeType: 1
videoUrl: 'https://scrimba.com/c/ca8Q8tP'
forumTopicId: 18307
@@ -9,43 +9,43 @@ dashedName: stand-in-line
# --description--
В комп'ютерних науках <dfn>queue</dfn> це абстрактне поняття <dfn>Data Structure</dfn>, де усі елементи зберігають певний порядок. Нові елементи можуть бути додані до черги, а старі елементи - зняті з черги.
<dfn>Черга</dfn> в компютерних науках це абстрактна <dfn>структура даних</dfn>, де усі елементи зберігають певний порядок. Нові елементи можна додати в кінець черги, а старі елементи знімають з початку.
# --instructions--
Напишіть функцію `nextInLine`, аргументами якої є масив (`arr`) та число (`item`).
Напишіть функцію `nextInLine`, яка приймає масив (`arr`) та число (`item`) як аргументи.
Додайте число до кінця масиву, а тоді видаліть перший елемент з масиву.
Функція `nextInLine` повинна повернути видалений елемент.
Функція `nextInLine` повинна повертати видалений елемент.
# --hints--
`nextInLine([], 5)` має повернути до числа.
`nextInLine([], 5)` повинна повертати число.
```js
assert.isNumber(nextInLine([], 5));
```
`nextInLine([], 1)` має повернути до `1`
`nextInLine([], 1)` повинна повертати `1`
```js
assert(nextInLine([], 1) === 1);
```
`nextInLine([2], 1)` має повернути до `2`
`nextInLine([2], 1)` повинна повертати `2`
```js
assert(nextInLine([2], 1) === 2);
```
`nextInLine([5,6,7,8,9], 1)` має повернути до `5`
`nextInLine([5,6,7,8,9], 1)` повинна повертати `5`
```js
assert(nextInLine([5, 6, 7, 8, 9], 1) === 5);
```
Після `nextInLine(testArr, 10)`, код `testArr[4]` має стати `10`
Після `nextInLine(testArr, 10)`, `testArr[4]` повинен бути `10`
```js
nextInLine(testArr, 10);

View File

@@ -1,6 +1,6 @@
---
id: bd7993c9c69feddfaeb8bdef
title: Зберігання кількох значень в одній змінній, використовуючи масиви JavaScript
title: Зберігання декількох значень в одній змінній за допомогою масивів JavaScript
challengeType: 1
videoUrl: 'https://scrimba.com/c/crZQWAm'
forumTopicId: 18309
@@ -9,9 +9,9 @@ dashedName: store-multiple-values-in-one-variable-using-javascript-arrays
# --description--
Зі змінними масивів `array` JavaScript, ми можемо зберігати частини даних в одному місці.
Ми можемо зберігати деякі дані в одному місці завдяки змінним `array` у JavaScript.
Ви починаєте оголошення масиву з відкритої квадратної дужки, а завершуєте його закриваючи квадратною дужкою і ставлячи кому між кожним елементом приблизно так:
Оголошення масиву починається з початкової квадратної дужки, закінчується кінцевою квадратною дужкою, а між кожним елементом ставиться кома:
```js
const sandwich = ["peanut butter", "jelly", "bread"];
@@ -29,13 +29,13 @@ const sandwich = ["peanut butter", "jelly", "bread"];
assert(typeof myArray == 'object');
```
Першим елементом у масиві `myArray` має бути рядок.
Першим елементом у `myArray` повинен бути рядок.
```js
assert(typeof myArray[0] !== 'undefined' && typeof myArray[0] == 'string');
```
Другий пункт в `myArray` має бути числом.
Другим елементом у `myArray` повинне бути число.
```js
assert(typeof myArray[1] !== 'undefined' && typeof myArray[1] == 'number');

View File

@@ -1,6 +1,6 @@
---
id: 56533eb9ac21ba0edf2244a8
title: Зберігання значень за допомогою оператора присвоєння
title: Зберігання значень за допомогою оператора присвоювання
challengeType: 1
videoUrl: 'https://scrimba.com/c/cEanysE'
forumTopicId: 18310
@@ -9,7 +9,7 @@ dashedName: storing-values-with-the-assignment-operator
# --description--
In JavaScript ви можете зберігати значення в змінній <dfn>assignment</dfn> з оператором (`=`).
У JavaScript можна зберігати значення в змінній за допомогою оператора <dfn>присвоювання</dfn> (`=`).
```js
myVariable = 5;
@@ -17,14 +17,14 @@ myVariable = 5;
Вона призначає `Number` зі значенням `5` до `myVariable`.
Якщо праворуч від оператора є будь-які розрахунки `=`, ті з них, які розташовані перед значенням належать до змінної зліва від оператора.
Якщо праворуч від оператора `=` є будь-які розрахунки, вони виконуються до того, як значення буде присвоєно змінній ліворуч від оператора.
```js
var myVar;
myVar = 5;
```
Спочатку, цей код створює змінну з ім'ям `myVar`. Тоді код присвоює `5` на `myVar`. Тепер, якщо `myVar` знову з'являється в коді, програма буде розглядати його так, як `5`.
Спочатку цей код створює змінну під назвою `myVar`. Потім код присвоює `5` до `myVar`. Якщо `myVar` знову зявиться у коді, програма розглядатиме її як `5`.
# --instructions--
@@ -38,7 +38,7 @@ myVar = 5;
assert(/var a;/.test(code));
```
`a` має мати значення 7.
`a` повинна мати значення 7.
```js
assert(typeof a === 'number' && a === 7);

View File

@@ -1,6 +1,6 @@
---
id: cf1111c1c11feddfaeb4bdef
title: Віднімати одне число від іншого використовуючи JavaScript
title: Віднімання одного числа від іншого за допомогою JavaScript
challengeType: 1
videoUrl: 'https://scrimba.com/c/cP3yQtk'
forumTopicId: 18314
@@ -9,11 +9,11 @@ dashedName: subtract-one-number-from-another-with-javascript
# --description--
Ми також можемо віднімати одне число від іншого.
Ми також можемо відняти одне число від іншого.
JavaScript використовує символ `-` для віднімання.
**Наприклад**
**Приклад**
```js
const myVar = 12 - 6;
@@ -22,17 +22,17 @@ const myVar = 12 - 6;
`myVar` тепер матиме значення `6`.
# --instructions--
Змініть `0` так, щоб сума дорівнювала `12`.
Змініть `0` так, щоб різниця дорівнювала `12`.
# --hints--
The variable `difference` should be equal to `12`.
Змінна `difference` повинна дорівнювати `12`.
```js
assert(difference === 12);
```
You should only subtract one number from `45`.
Ви повинні відняти лише одне число від `45`.
```js
assert(/difference=45-33;?/.test(__helpers.removeWhiteSpace(code)));

View File

@@ -1,6 +1,6 @@
---
id: 567af2437cbaa8c51670a16c
title: Тестування властивостей об'єктів
title: Перевірка властивостей обєктів
challengeType: 1
forumTopicId: 18324
dashedName: testing-objects-for-properties
@@ -8,9 +8,9 @@ dashedName: testing-objects-for-properties
# --description--
Іноді варто перевіряти чи даний об'єкт вже має певні властивості. Ми можемо використовувати метод об'єктів `.hasOwnProperty(propname)`, щоб визначити чи об'єкт має ім'я властивості. `.hasOwnProperty()` показує `true` чи `false`, в залежності чи властивість знайдена, чи ні.
Іноді потрібно перевіряти, чи об'єкт має певну властивість. Ми можемо використати метод об'єктів `.hasOwnProperty(propname)`, щоб визначити, чи має цей обєкт задану назву властивості. `.hasOwnProperty()` повертає `true` або `false`, якщо властивість знайдена чи не знайдена.
**Наприклад**
**Приклад**
```js
const myObj = {
@@ -22,11 +22,11 @@ myObj.hasOwnProperty("top");
myObj.hasOwnProperty("middle");
```
Перший `hasOwnProperty` стає `true`, а другий - `false`.
Перший `hasOwnProperty` повертає `true`, а другий повертає `false`.
# --instructions--
Змініть функцію `checkObj`, щоб перевірити чи об'єкт переданий до функції (`obj`) містить особливу властивість (`checkProp`). Якщо властивість знайдена, поверніть значення властивості. Якщо ні, поверніть `"Not Found"`.
Змініть функцію `checkObj` так, щоб вона перевіряла, чи переданий до функції об’єкт (`obj`) містить певну властивість (`checkProp`). Якщо властивість знайдена, поверніть значення властивості. Якщо ні, поверніть `"Not Found"`.
# --hints--

View File

@@ -1,6 +1,6 @@
---
id: 56533eb9ac21ba0edf2244ba
title: Розуміння нестійкості рядка
title: Незмінність рядка
challengeType: 1
videoUrl: 'https://scrimba.com/c/cWPVaUR'
forumTopicId: 18331
@@ -9,16 +9,16 @@ dashedName: understand-string-immutability
# --description--
У JavaScript, `String` значення <dfn>immutable</dfn>, означає, що їх не можна буде змінити після створення.
Значення рядка (`String`) у JavaScript є <dfn>незмінним</dfn>, тобто його не можна змінити після створення.
For example, the following code will produce an error because the letter `B` in the string `Bob` cannot be changed to the letter `J`:
Наприклад, наступний код спричинить помилку, оскільки літеру `B` у рядку `Bob` не можна змінити на літеру `J`:
```js
let myStr = "Bob";
myStr[0] = "J";
```
Note that this does *not* mean that `myStr` could not be re-assigned. The only way to change `myStr` would be to assign it with a new value, like this:
Зауважте, що це *не* означає, що `myStr` не можна повторно присвоїти. Єдиний спосіб змінити `myStr` присвоїти нове значення:
```js
let myStr = "Bob";
@@ -27,11 +27,11 @@ myStr = "Job";
# --instructions--
Виправте призначення `myStr` так, щоб код містив рядок зі значенням `Hello World`, використовуючи підхід, показаний вище.
Використовуючи приклад вище, виправте присвоєння `myStr` так, щоб значенням рядка було `Hello World`.
# --hints--
`myStr` має мати значення рядка `Hello World`.
`myStr` повинен мати значення рядка `Hello World`.
```js
assert(myStr === 'Hello World');

View File

@@ -1,6 +1,6 @@
---
id: bd7123c9c441eddfaeb5bdef
title: Розуміння булевих значень
title: Булеві значення
challengeType: 1
videoUrl: 'https://scrimba.com/c/c9Me8t4'
forumTopicId: 301176
@@ -9,9 +9,9 @@ dashedName: understanding-boolean-values
# --description--
Інший тип даних це <dfn>Boolean</dfn>. Булеві значення можуть мати лише два значення: `true` чи `false`. Фактично, це маленькі перемикачі, де `true` це "увімкнено" і `false` - "вимкнено". Ці два стани несумісні.
Іншим типом даних є <dfn>булеві</dfn>. Булеві можуть мати лише два значення: `true` або `false`. По суті, це маленькі перемикачі, де `true` означає «увімкнено», а `false` означає «вимкнено». Ці два стани несумісні.
**Note:** Булеві вирази ніколи не записуються в дужках. Рядки `"true"` й `"false"` не булеві і не мають особливого значення в JavaScript.
**Примітка:** булеві значення завжди записують без лапок. Рядки `"true"` та `"false"` не є булевими та не мають особливого значення у JavaScript.
# --instructions--
@@ -19,13 +19,13 @@ dashedName: understanding-boolean-values
# --hints--
Функція `welcomeToBooleans()` має повернути значення (`true` or `false`).
Функція `welcomeToBooleans()` повинна повертати булеве значення (`true` або `false`).
```js
assert(typeof welcomeToBooleans() === 'boolean');
```
`welcomeToBooleans()` має повернути `true`.
`welcomeToBooleans()` повинна повертати `true`.
```js
assert(welcomeToBooleans() === true);

View File

@@ -1,6 +1,6 @@
---
id: 56533eb9ac21ba0edf2244ab
title: Розуміння врахування регістру в змінних
title: Чуттєвість змінних до регістру
challengeType: 1
videoUrl: 'https://scrimba.com/c/cd6GDcD'
forumTopicId: 18334
@@ -9,13 +9,13 @@ dashedName: understanding-case-sensitivity-in-variables
# --description--
У JavaScript усі змінні та назви функцій існують з урахуванням регістру. Це означає, що написання з великої літери має значення.
Усі назви змінних та функцій у JavaScript чуттєві до регістру. Це означає, що написання з великої літери має значення.
`MYVAR` - це не теж саме, що й `MyVar` чи `myvar`. Цілком можливо мати декілька різних змінних з одинаковою назвою, але різним відмінком. Наполегливо рекомендується, щоб, заради чіткості, ви *не* використовували цю мовну особливість.
`MYVAR` це не саме, що `MyVar` чи `myvar`. Ви можете мати декілька різних змінних з одинаковою назвою, але різним регістром. Заради чіткості рекомендовано *не* використовувати цю особливість мови.
**Найкраща практика**
Напишіть назви змінних у JavaScript в <dfn>camelCase</dfn>. У <dfn>camelCase</dfn>, у назвах змінних, які складаються з декількох слів, перше слово ми пишемо з малої букви, а першу букву кожного наступного слова - з великої.
Напишіть назви змінних у JavaScript <dfn>верблюдячимРегістром</dfn>. Назви змінних <dfn>верблюдячимРегістром</dfn> складаються з декількох слів, де перше слово ми пишемо з малої букви, а першу букву кожного наступного слова пишемо з великої.
**Приклади:**
@@ -27,19 +27,19 @@ var thisVariableNameIsSoLong;
# --instructions--
Модифікуйте існуючі оголошення та завдання так, щоб їхні назви використовували <dfn>camelCase</dfn>.
Змініть наявні оголошення та присвоєння так, щоб їхні назви були написані <dfn>верблюдячимРегістром</dfn>.
Не створюйте жодних нових змінних.
# --hints--
`studlyCapVar` має бути визначене і мати значення `10`.
`studlyCapVar` повинна бути визначеною та мати значення `10`.
```js
assert(typeof studlyCapVar !== 'undefined' && studlyCapVar === 10);
```
`properCamelCase` має бути визначене і мати значення рядка `A String`.
`properCamelCase` повинна бути визначеною та мати значення рядка `A String`.
```js
assert(
@@ -47,25 +47,25 @@ assert(
);
```
`titleCaseOver` має бути визначене і мати значення `9000`.
`titleCaseOver` повинна бути визначеною та мати значення `9000`.
```js
assert(typeof titleCaseOver !== 'undefined' && titleCaseOver === 9000);
```
`studlyCapVar` має використовувати camelCase як в оголошенні, так і в розділах завдань.
`studlyCapVar` повинна використовувати верблюдячийРегістр як в оголошенні, так і в присвоєнні.
```js
assert(code.match(/studlyCapVar/g).length === 2);
```
`properCamelCase` має використовувати camelCase як в оголошенні, так і в розділах завдань.
`properCamelCase` повинна використовувати верблюдячийРегістр як в оголошенні, так і в присвоєнні.
```js
assert(code.match(/properCamelCase/g).length === 2);
```
`titleCaseOver` має використовувати camelCase як в оголошенні, так і в розділах завдань.
`titleCaseOver` повинна використовувати верблюдячийРегістр як в оголошенні, так і в присвоєнні.
```js
assert(code.match(/titleCaseOver/g).length === 2);

View File

@@ -1,6 +1,6 @@
---
id: 598e8944f009e646fc236146
title: Розуміння невизначеного значення, яке повернуто з функції
title: Невизначене значення, повернуте з функції
challengeType: 1
videoUrl: 'https://scrimba.com/c/ce2p7cL'
forumTopicId: 301177
@@ -9,7 +9,7 @@ dashedName: understanding-undefined-value-returned-from-a-function
# --description--
Функція може містити команду `return`, але не обов'язково. У цьому випадку функція не має команди `return`. Натомість, коли ви викликаєте її, функція обробляє внутрішній код, але повернене значення є `undefined`.
Функція може містити інструкцію `return`, але це необов'язково. Якщо функція не має інструкції `return`, то під час виклику функція обробляє внутрішній код, але поверненим значенням є `undefined`.
**Приклад**
@@ -23,33 +23,33 @@ function addSum(num) {
addSum(3);
```
`addSum` - це функція без команди `return`. Функція змінить загальну `sum` (суму) змінної, але повернене значення функції буде `undefined`.
`addSum` є функцією без інструкції `return`. Функція змінить глобальну змінну `sum`, але поверненим значенням функції буде `undefined`.
# --instructions--
Створіть функцію `addFive` без аргументів. Ця функція додає 5 до `sum` (суми) змінної, але повернене значення є `undefined`.
Створіть функцію `addFive` без аргументів. Ця функція додає 5 до змінної `sum`, але поверненим значенням є `undefined`.
# --hints--
`addFive` має бути функцією.
`addFive` повинна бути функцією.
```js
assert(typeof addFive === 'function');
```
Після запуску обидвох функцій, `sum` має дорівнювати `8`.
Після запуску обидвох функцій, `sum` повинна дорівнювати `8`.
```js
assert(sum === 8);
```
Повернене з `addFive` значення, має бути `undefined`.
Поверненим значенням з `addFive` повинне бути `undefined`.
```js
assert(addFive() === undefined);
```
Всередині функції `addFive` вам слід додати `5` до `sum` змінної.
Всередині функції `addFive` ви повинні додати `5` до змінної `sum`.
```js
assert(

View File

@@ -1,6 +1,6 @@
---
id: 56533eb9ac21ba0edf2244aa
title: Розуміння неініціалізованих змінних
title: Неініціалізовані змінні
challengeType: 1
videoUrl: 'https://scrimba.com/c/cBa2JAL'
forumTopicId: 18335
@@ -9,7 +9,7 @@ dashedName: understanding-uninitialized-variables
# --description--
Коли змінні JavaScript проголошено, вони мають початкове значення `undefined`. Якщо ви виконуєте математичну дію з `undefined` змінної, вашим результатом буде `NaN`, що означає <dfn>"Not a Number"</dfn>. If you concatenate a string with an `undefined` variable, you will get a <dfn>string</dfn> of `undefined`.
Коли змінні у JavaScript оголошено, вони отримують початкове значення `undefined`. Якщо виконати математичну дію на змінній `undefined`, то результатом буде `NaN`, що означає «Not a Number» <dfn>(укр. «не є числом»)</dfn>. Якщо об’єднати рядок зі змінною `undefined`, ви отримаєте <dfn>рядок</dfn> з `undefined`.
# --instructions--
@@ -17,25 +17,25 @@ dashedName: understanding-uninitialized-variables
# --hints--
`a` should be defined and have a final value of `6`.
`a` повинна бути визначеною та мати кінцеве значення `6`.
```js
assert(typeof a === 'number' && a === 6);
```
`b` should be defined and have a final value of `15`.
`b` повинна бути визначеною та мати кінцеве значення `15`.
```js
assert(typeof b === 'number' && b === 15);
```
`c` should not contain `undefined` and should have a final value of the string `I am a String!`
`c` не повинна містити `undefined` та повинна мати кінцеве значення рядка `I am a String!`
```js
assert(!/undefined/.test(c) && c === 'I am a String!');
```
Вам не слід змінювати код під зазначеним коментарем.
Не змінюйте код під зазначеним коментарем.
```js
assert(

View File

@@ -9,7 +9,7 @@ dashedName: updating-object-properties
# --description--
Після того, як ви створили об'єкт JavaScript, ви можете оновити його властивості в будь-який час, так як і будь-які інші його змінні. Ви можете використовувати точкову або дужкову нотацію для оновлення.
Після створення обєкта JavaScript ви можете будь-коли оновити його властивості так само, як оновлювали б будь-яку іншу змінну. Для оновлення можна використати точкову або дужкову нотацію.
Наприклад, погляньмо на `ourDog`:
@@ -22,21 +22,21 @@ const ourDog = {
};
```
Оскільки це винятково щасливий собака, змінімо його ім'я на рядок `Happy Camper`. Ось як ми оновимо властивість імені його об'єкта: `ourDog.name = "Happy Camper";` або `ourDog["name"] = "Happy Camper";` Тепер коли ми оцінюємо `ourDog.name`, замість того, щоб отримати `Camper`, ми отримаємо його нове ім'я `Happy Camper`.
Оскільки це особливо щаслива собака, змінимо його ім'я на рядок `Happy Camper`. Ось як ми оновлюємо властивість назви обєкта: `ourDog.name = "Happy Camper";` або `ourDog["name"] = "Happy Camper";`. Тепер, коли ми визначаємо `ourDog.name`, замість `Camper` ми отримуватимемо нове імя `Happy Camper`.
# --instructions--
Оновити властивість імені об'єкта `myDog`. Змінімо його ім'я з `Coder` на `Happy Coder`. Ви можете використати точкову або дужкову нотацію.
Оновіть властивість імені об'єкта `myDog`. Змінимо ім'я з `Coder` на `Happy Coder`. Ви можете використати точкову або дужкову нотацію.
# --hints--
Вам слід оновити властивість `name` `myDog`, щоб вона дорівнювала рядку`Happy Coder`.
Ви повинні оновити властивість `name` об’єкта `myDog`, щоб вона дорівнювала рядку `Happy Coder`.
```js
assert(/happy coder/gi.test(myDog.name));
```
Не слід змінювати визначення `myDog`.
Ви не повинні редагувати визначення `myDog`.
```js
assert(/"name": "Coder"/.test(code));

View File

@@ -1,6 +1,6 @@
---
id: bd7123c9c549eddfaeb5bdef
title: Використовуйте Дужкову Нотацію для Пошуку Першого Символу в Рядку
title: Дужкова нотація для пошуку першого символа рядка
challengeType: 1
videoUrl: 'https://scrimba.com/c/ca8JwhW'
forumTopicId: 18341
@@ -9,26 +9,26 @@ dashedName: use-bracket-notation-to-find-the-first-character-in-a-string
# --description--
<dfn>Дужкова нотація</dfn> - це спосіб отримання символу з певним індексом в рядку.
Завдяки <dfn>дужковій нотації</dfn> можна отримати символ з певним індексом в рядку.
Більшість сучасних мов програмування, таких як JavaScript, не починають рахувати з 1, як це роблять люди. Вони починають з 0. Це називають індексація <dfn>на основі нуля</dfn>.
Більшість сучасних мов програмування, наприклад JavaScript, не починають рахунок з 1, як це роблять люди. Вони починають з 0. Це називається індексацією <dfn>на основі нуля</dfn>.
Наприклад, символ з індексом 0 у слові `Charles` буде `C`. Отже, якщо `const firstName = "Charles"`, ви можете отримати значення першої літери рядка, використовуючи `firstName[0]`.
Наприклад, символом з індексом 0 у слові `Charles` буде `C`. Тому, якщо `const firstName = "Charles"`, ви можете отримати значення першої літери рядка, використовуючи `firstName[0]`.
Наприклад:
Приклад:
```js
const firstName = "Charles";
const firstLetter = firstName[0];
```
`firstLetter` повинна мати значення рядка `C`.
`firstLetter` матиме значення рядка `C`.
# --instructions--
Використовуйте дужкову нотацію, щоб знайти перший символ в змінній `lastName` та задайте його до `firstLetterOfLastName`.
Використайте дужкову нотацію, щоб знайти перший символ у змінній `lastName` та призначте його до `firstLetterOfLastName`.
**Підказка:**Спробуйте подивитися на приклад вище, якщо застрягли.
**Підказка:** якщо застрягли, перегляньте вищеподаний приклад.
# --hints--
@@ -38,7 +38,7 @@ const firstLetter = firstName[0];
assert(firstLetterOfLastName === 'L');
```
Вам слід використовувати дужкову нотацію.
Ви повинні використати дужкову нотацію.
```js
assert(code.match(/firstLetterOfLastName\s*=\s*lastName\s*\[\s*\d\s*\]/));

View File

@@ -1,6 +1,6 @@
---
id: bd7123c9c451eddfaeb5bdef
title: Використовуйте Дужкову Нотацію для Пошуку Останнього Символу в Рядку
title: Дужкова нотація для пошуку останнього символа рядка
challengeType: 1
videoUrl: 'https://scrimba.com/c/cBZQGcv'
forumTopicId: 18342
@@ -9,28 +9,28 @@ dashedName: use-bracket-notation-to-find-the-last-character-in-a-string
# --description--
Щоб отримати останню літеру рядка, ви можете відняти її від довжини рядка.
Щоб отримати останню літеру рядка, можна відняти одиницю від довжини рядка.
Наприклад, якщо `const firstName = "Ada"`, ви можете отримати значення останньої літери, використовуючи `firstName[firstName.length - 1]`.
Наприклад, якщо `const firstName = "Ada"`, ви можете отримати значення останньої літери, використавши `firstName[firstName.length - 1]`.
Наприклад:
Приклад:
```js
const firstName = "Ada";
const lastLetter = firstName[firstName.length - 1];
```
`lastLetter` повинна мати значення рядка `a`.
`lastLetter` матиме значення рядка `a`.
# --instructions--
Використовуйте <dfn>дужкову нотацію</dfn>, щоб знайти останній символ у змінній `lastName`.
Використайте <dfn>дужкову нотацію</dfn>, щоб знайти останній символ у змінній `lastName`.
**Підказка:**Спробуйте подивитися на приклад вище, якщо застрягли.
**Підказка:** якщо застрягли, перегляньте вищеподаний приклад.
# --hints--
`lastLetterOfLastName` повинно бути літерою `e`.
`lastLetterOfLastName` повинна бути літера `e`.
```js
assert(lastLetterOfLastName === 'e');

View File

@@ -1,6 +1,6 @@
---
id: bd7123c9c450eddfaeb5bdef
title: Використовуйте Дужкову Нотацію для Пошуку N-го Символу в Рядку
title: Дужкова нотація для пошуку n-го символа рядка
challengeType: 1
videoUrl: 'https://scrimba.com/c/cWPVJua'
forumTopicId: 18343
@@ -9,24 +9,24 @@ dashedName: use-bracket-notation-to-find-the-nth-character-in-a-string
# --description--
Ви можете також використовувати <dfn>дужкову нотацію</dfn>, щоб отримати символ на інших позиціях в рядку.
Ви також можете використати <dfn>дужкову нотацію</dfn>, щоб отримати символ на інших позиціях рядка.
Пам'ятайте, що комп'ютер починає рахувати з `0`, тому перший символ є в дійсності нульовим.
Памятайте, що компютер починає рахувати з `0`, тому насправді першим символом є нульовий.
Наприклад:
Приклад:
```js
const firstName = "Ada";
const secondLetterOfFirstName = firstName[1];
```
`secondLetterOfFirstName` повинна мати значення рядка `d`.
`secondLetterOfFirstName` матиме значення рядка `d`.
# --instructions--
Спробуйте встановити `thirdLetterOfLastName` на рівні третьої літери змінної `lastName`, використовуючи дужкову нотацію.
Спробуйте встановити `thirdLetterOfLastName`, щоб вона дорівнювала третій літері змінної `lastName`, використовуючи дужкову нотацію.
**Підказка:** Спробуйте подивитися на приклад вище, якщо застрягли.
**Підказка:** якщо застрягли, перегляньте вищеподаний приклад.
# --hints--
@@ -36,7 +36,7 @@ const secondLetterOfFirstName = firstName[1];
assert(thirdLetterOfLastName === 'v');
```
Вам слід використовувати дужкову нотацію.
Ви повинні використати дужкову нотацію.
```js
assert(code.match(/thirdLetterOfLastName\s*=\s*lastName\s*\[\s*\d\s*\]/));

View File

@@ -1,6 +1,6 @@
---
id: bd7123c9c452eddfaeb5bdef
title: Використовуйте Дужкову Нотацію для Пошуку Символу N-го до Останнього в Рядку
title: Дужкова нотація для пошуку n-го символа з кінця рядка
challengeType: 1
videoUrl: 'https://scrimba.com/c/cw4vkh9'
forumTopicId: 18344
@@ -9,34 +9,34 @@ dashedName: use-bracket-notation-to-find-the-nth-to-last-character-in-a-string
# --description--
Ви можете використовувати той самий принцип, який ми використовували для отримання останнього символу в рядку, щоб отримати символ N-го до останнього.
Ви можете використати той самий принцип, який ми щойно використовували для отримання останнього символу в рядку, щоб отримати n-ий символ з кінця.
Наприклад, ви можете отримати значення третьої до останньої літери рядка `const firstName = "Augusta"`, використовуючи `firstName[firstName.length - 3]`
Наприклад, ви можете отримати значення третьої з кінця літери рядка `const firstName = "Augusta"`, використавши `firstName[firstName.length - 3]`
Наприклад:
Приклад:
```js
const firstName = "Augusta";
const thirdToLastLetter = firstName[firstName.length - 3];
```
`thirdToLastLetter` повинен мати значення рядка `s`.
`thirdToLastLetter` матиме значення рядка `s`.
# --instructions--
Використовуйте <dfn>дужкову нотацію</dfn> для пошуку передостаннього символу в `lastName` в рядку.
Використайте <dfn>дужкову нотацію</dfn>, щоб знайти другий з кінця символ у рядку `lastName`.
**Підказка:**Спробуйте подивитися на приклад вище, якщо застрягли.
**Підказка:** якщо застрягли, перегляньте вищеподаний приклад.
# --hints--
`secondToLastLetterOfLastName` повинно бути літерою `c`.
`secondToLastLetterOfLastName` повинна бути літера `c`.
```js
assert(secondToLastLetterOfLastName === 'c');
```
Вам слід використовувати `.length`, щоб отримати передостанню літеру.
Ви повинні використати `.length`, щоб отримати передостанню літеру.
```js
assert(code.match(/\.length/g).length > 0);

View File

@@ -1,6 +1,6 @@
---
id: cf1111c1c12feddfaeb3bdef
title: Використання умовної логіки з командою if
title: Використання умовної логіки з інструкцією if
challengeType: 1
videoUrl: 'https://scrimba.com/c/cy87mf3'
forumTopicId: 18348
@@ -9,15 +9,15 @@ dashedName: use-conditional-logic-with-if-statements
# --description--
Інструкції `If` використовуються для прийняття рішень у коді. Ключове слово `if` наказує JavaScript виконати код у фігурних дужках за певних умов, вказаних у круглих дужках. Ці умови ще називаються умовами `Boolean` і вони можуть бути лише `true` або `false`.
Інструкції `if` використовують для прийняття рішень у коді. Ключове слово `if` вказує JavaScript виконати код у фігурних дужках за певних умов, вказаних у круглих дужках. Ці умови ще називаються булевими умовами (`Boolean`), і вони можуть бути лише `true` або `false`.
Коли умова є оціненою як `true`, програма виконує команду у фігурних дужках. Коли булева умова є оцінена як `false`, команда у фігурних дужках не буде виконана.
Якщо умова оцінена як `true`, програма виконує інструкцію у фігурних дужках. Якщо булева умова оцінена як `false`, команда у фігурних дужках не виконується.
**Псевдокод**
<blockquote>if (<i>condition is true</i>) {<br>  <i>statement is executed</i><br>}</blockquote>
<blockquote>if (<i>умова оцінена як true</i>) {<br>  <i>інструкція виконується</i><br>}</blockquote>
**Наприклад:**
**Приклад**
```js
function test (myCondition) {
@@ -33,39 +33,39 @@ test(false);
`test(true)` повертає рядок `It was true`, а `test(false)` повертає рядок `It was false`.
Коли `test` отримує значення `true`, оператор `if` оцінює `myCondition`, щоб побачити чи воно є `true` чи ні. Оскільки це `true`, функція повертає `It was true`. Коли ми викликаємо `test` зі значенням `false`, `myCondition` *не* `true`, інструкція у круглих дужках не виконується та функція повертає `It was false`.
Коли `test` викликається зі значенням `true`, інструкція `if` оцінює `myCondition`, щоб побачити чи воно `true`. Оскільки воно `true`, функція повертає `It was true`. Коли ми викликаємо `test` зі значенням `false`, то `myCondition` *не* оцінюється як `true`, інструкція у круглих дужках не виконується та функція повертає `It was false`.
# --instructions--
Створіть оператора `if` всередині функції, щоб повернути `Yes, that was true`, якщо параметр `wasThatTrue` є `true` та повернути `No, that was false` у протилежному випадку.
Створіть інструкцію `if` всередині функції, щоб повернути `Yes, that was true`, якщо параметр `wasThatTrue` є `true` та повернути `No, that was false` у протилежному випадку.
# --hints--
`trueOrFalse` повинен бути функцією
`trueOrFalse` повинна бути функцією
```js
assert(typeof trueOrFalse === 'function');
```
`trueOrFalse(true)` повинен повертати рядок
`trueOrFalse(true)` повинна повертати рядок
```js
assert(typeof trueOrFalse(true) === 'string');
```
`trueOrFalse(false)` повинен повертати рядок
`trueOrFalse(false)` повинна повертати рядок
```js
assert(typeof trueOrFalse(false) === 'string');
```
`trueOrFalse(true)` повинен повертати рядок `Yes, that was true`
`trueOrFalse(true)` повинна повертати рядок `Yes, that was true`
```js
assert(trueOrFalse(true) === 'Yes, that was true');
```
`trueOrFalse(false)` повинен повертати рядок `No, that was false`
`trueOrFalse(false)` повинна повертати рядок `No, that was false`
```js
assert(trueOrFalse(false) === 'No, that was false');

View File

@@ -1,6 +1,6 @@
---
id: 587d7b7e367417b2b2512b21
title: Використання декількох умовних (трикомпонентних) операторів
title: Використання декількох умовних (тернарних) операторів
challengeType: 1
videoUrl: 'https://scrimba.com/c/cyWJBT4'
forumTopicId: 301179
@@ -11,7 +11,7 @@ dashedName: use-multiple-conditional-ternary-operators
У попередньому завданні ви використовували одинарний умовний оператор. Ви також можете їх об'єднати для того, щоб перевірити декілька умов.
Наступна функція використовує `if`, `else if`, а також `else` твердження, щоб перевірити декілька умов:
Наступна функція використовує інструкції `if`, `else if` та `else`, щоб перевірити декілька умов:
```js
function findGreaterOrEqual(a, b) {
@@ -47,29 +47,29 @@ function findGreaterOrEqual(a, b) {
# --instructions--
У функції `checkSign`, використовуйте декілька умовних операторів, дотримуючись рекомендованого формату, що використаний у `findGreaterOrEqual` - для того, щоб перевірити чи число додатнє, від'ємне або нуль. Функція має повернути `positive`, `negative` or `zero`.
Використайте декілька умовних операторів у функції `checkSign`, дотримуючись рекомендованого формату, використаного у `findGreaterOrEqual`, щоб перевірити, чи число додатнє, відємне або дорівнює нулю. Функція повинна повертати `positive`, `negative` або `zero`.
# --hints--
`checkSign` має використовувати декілька умовних операторів
`checkSign` повинна використовувати декілька умовних операторів
```js
assert(/.+?\s*?\?\s*?.+?\s*?:\s*?.+?\s*?\?\s*?.+?\s*?:\s*?.+?/gi.test(code));
```
`checkSign(10)` повинен повертати рядок `positive`. Зверніть увагу на те, що написання з великої літери - важливе
`checkSign(10)` повинна повертати рядок `positive`. Зверніть увагу на те, що важливе написання з великої/малої літери
```js
assert(checkSign(10) === 'positive');
```
`checkSign(-12)` повинен повертати рядок `negative`. Зверніть увагу на те, що написання з великої літери - важливе
`checkSign(-12)` повинна повертати рядок `negative`. Зверніть увагу на те, що важливе написання з великої/малої літери
```js
assert(checkSign(-12) === 'negative');
```
`checkSign(0)` повинен повертати рядок `zero`. Зверніть увагу на те, що написання з великої літери - важливе
`checkSign(0)` повинна повертати рядок `zero`. Зверніть увагу на те, що важливе написання з великої/малої літери
```js
assert(checkSign(0) === 'zero');

View File

@@ -1,6 +1,6 @@
---
id: 5cd9a70215d3c4e65518328f
title: Використовуйте рекурсію для створення зворотного відліку
title: Використання рекурсії для створення зворотного відліку
challengeType: 1
forumTopicId: 305925
dashedName: use-recursion-to-create-a-countdown
@@ -8,11 +8,11 @@ dashedName: use-recursion-to-create-a-countdown
# --description--
In a <a href="/learn/javascript-algorithms-and-data-structures/basic-javascript/replace-loops-using-recursion" target="_blank" rel="noopener noreferrer nofollow">previous challenge</a>, you learned how to use recursion to replace a `for` loop. Тепер подивимося на більш складну функцію, яка повертає масив послідовних чисел, починаючи з `1` до числа, переданого функції.
У <a href="/ukrainian/learn/javascript-algorithms-and-data-structures/basic-javascript/replace-loops-using-recursion" target="_blank" rel="noopener noreferrer nofollow">попередньому завданні</a> ви дізнались, як використовувати рекурсію для заміни циклів `for`. Тепер розглянемо складнішу функцію, яка повертає масив послідовних цілих чисел, починаючи з `1` до числа, переданого функції.
Як уже було згадано в попередньому завданні, це буде <dfn>base case</dfn>. Він повідомляє рекурсивній функції, коли їй більше не потрібно викликати саму себе. Це простий випадок, коли значення, яке повертається, вже відоме. Також існує <dfn>recursive call</dfn>, який виконує початкову функцію з різними параметрами. Якщо функція написана правильно, то буде досягнутий базовий випадок.
Як було згадано в попередньому завданні, ми матимемо <dfn>базовий випадок</dfn>. Він повідомляє рекурсивній функції, коли їй більше не потрібно викликати саму себе. Це простий випадок, коли повернене значення вже відоме. Також існує <dfn>рекурсивний виклик</dfn>, який виконує початкову функцію з різними аргументами. Якщо функція написана правильно, то буде досягнутий базовий випадок.
Наприклад, скажімо, ви хочете написати рекурсивну функцію, яка повертає масив, що містить числа від `1` до `n`. Цій функції потрібно прийняти параметр `n`, який означає остаточне число. Тоді їй потрібно викликати саму себе, поступово зменшуючи значення числа `n`, поки воно не досягне `1`. Ви можете написати функцію наступним чином:
Скажімо, ви хочете написати рекурсивну функцію, що повертає масив, який містить числа від `1` до `n`. Цій функції потрібно прийняти аргумент `n`, який позначає кінцеве число. Тоді їй потрібно викликати саму себе, поступово зменшуючи значення числа `n`, поки воно не досягне `1`. Ви можете написати функцію наступним чином:
```javascript
function countup(n) {
@@ -29,33 +29,33 @@ console.log(countup(5));
Значення `[1, 2, 3, 4, 5]` будуть відображені на консолі.
Спочатку це може здатися парадоксальним, адже значення `n` *зростає*, але значення у остаточному масиві *зростають*. Так відбувається, тому що підвищення відбувається останнім після рекурсивного виклику. У точці, де `n` вставляється в масив `countup(n - 1)` вже проаналізовано та повернуто `[1, 2, ..., n - 1]`.
Спочатку це може здатися парадоксальним, адже значення `n` *зменшується*, а значення у кінцевому масиві *збільшується*. Так відбувається через те, що збільшення відбувається останнім, після повернення рекурсивного виклику. На моменті, коли `n` поміщається у масив, `countup(n - 1)` вже проаналізований та повернуто `[1, 2, ..., n - 1]`.
# --instructions--
Ми вже визначили функцію під назвою `countdown` з одним параметром (`n`). Функція має використовувати рекурсію, щоб повернути масив, який містить цілі числа від `n` до `1` на основі параметра `n`. Якщо функція викликається числом меншим за 1, вона має повернути порожній масив. Наприклад, виклик цієї функції зі значенням `n = 5` має повернути масив `[5, 4, 3, 2, 1]`. Ваша функція має використовувати рекурсію шляхом виклику самої себе, але не повинна використовувати ніякі цикли.
Ми вже визначили функцію під назвою `countdown` з одним параметром (`n`). Функція повинна використовувати рекурсію, щоб повернути масив, який містить цілі числа від `n` до `1` на основі параметра `n`. Якщо функція викликається числом меншим за 1, вона повинна повернути порожній масив. Наприклад, якщо викликати цю функцію із `n = 5`, повинен повернутися масив `[5, 4, 3, 2, 1]`. Ваша функція повинна використовувати рекурсію, викликаючи саму себе, та не повинна використовувати цикли.
# --hints--
`countdown(-1)` має повернути пустий масив.
`countdown(-1)` повинна повертати порожній масив.
```js
assert.isEmpty(countdown(-1));
```
`countdown(10)` має повернути `[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]`
`countdown(10)` повинна повертати `[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]`
```js
assert.deepStrictEqual(countdown(10), [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]);
```
`countdown(5)` має повернути `[5, 4, 3, 2, 1]`
`countdown(5)` повинна повертати `[5, 4, 3, 2, 1]`
```js
assert.deepStrictEqual(countdown(5), [5, 4, 3, 2, 1]);
```
Ваш код не має опиратися на жодні цикли (`for`, `while` або функції більш високого порядку, такі як `forEach`, `map`, `filter`, and `reduce`).
Ваш код не повинен опиратися на жодні цикли (`for`, `while` або функції вищого порядку, як-от `forEach`, `map`, `filter` або `reduce`).
```js
assert(
@@ -63,7 +63,7 @@ assert(
);
```
Вам слід використати рекурсію, щоб вирішити цю проблему.
Ви повинні використати рекурсію, щоб розв’язати це завдання.
```js
assert(
@@ -71,7 +71,7 @@ assert(
);
```
Global variables should not be used to cache the array.
Не використовуйте глобальні змінні для кешування масиву.
```js
countdown(1)

View File

@@ -8,11 +8,11 @@ dashedName: use-recursion-to-create-a-range-of-numbers
# --description--
Продовжуючи попереднє завдання, ми пропонуємо вам ще одну можливість створити рекурсивну функцію для вирішення проблеми.
Продовжуючи попереднє завдання, ми пропонуємо створити рекурсивну функцію ще раз, щоб розв’язати завдання.
# --instructions--
Ми визначили функцію під назвою `rangeOfNumbers` з двома параметрами. Функція повинна повернути масив цілих чисел, що починаються з числа, представленого параметром `startNum` і закінчується числом, яке представлене параметром `endNum`. Початкове число завжди буде меншим або рівним кінцевому номеру. Ваша функція має використовувати рекурсію, викликаючи сама себе, але не повинна використовувати якісь цикли. Вона також повинна працювати у випадках, коли`startNum` і `endNum` однакові.
Ми визначили функцію під назвою `rangeOfNumbers` з двома параметрами. Функція повинна повернути масив цілих чисел, що починається з числа, представленого параметром `startNum` і закінчується числом, представленим параметром `endNum`. Початкове число завжди буде меншим або дорівнюватиме кінцевому числу. Ваша функція повинна використовувати рекурсію, викликаючи саму себе, та не повинна використовувати цикли. Вона також повинна працювати, якщо `startNum` та `endNum` однакові.
# --hints--
@@ -22,7 +22,7 @@ dashedName: use-recursion-to-create-a-range-of-numbers
assert(Array.isArray(rangeOfNumbers(5, 10)));
```
У вашому коді не повинні використовуватися ніякі циклічні синтаксичні структури (`for` або `while` або функції вищого порядку, такі як `forEach`, `map`, `filter`, або `reduce`).
Ваш код не повинен використовувати синтаксиси циклу (`for`, `while` або функції вищого порядку, як-от `forEach`, `map`, `filter` або `reduce`).
```js
assert(
@@ -30,7 +30,7 @@ assert(
);
```
`rangeOfNumbers` повинен використовувати рекурсію (викликати самого себе) для вирішення цьгого завдання.
`rangeOfNumbers` повинна використовувати рекурсію (викликати саму себе), щоб розв’язати це завдання.
```js
assert(
@@ -38,25 +38,25 @@ assert(
);
```
`rangeOfNumbers(1, 5)` повинен повертати `[1, 2, 3, 4, 5]`.
`rangeOfNumbers(1, 5)` повинна повертати `[1, 2, 3, 4, 5]`.
```js
assert.deepStrictEqual(rangeOfNumbers(1, 5), [1, 2, 3, 4, 5]);
```
`rangeOfNumbers(6, 9)` повинен повертати `[6, 7, 8, 9]`.
`rangeOfNumbers(6, 9)` повинна повертати `[6, 7, 8, 9]`.
```js
assert.deepStrictEqual(rangeOfNumbers(6, 9), [6, 7, 8, 9]);
```
`rangeOfNumbers(4, 4)` повинен повертати `[4]`.
`rangeOfNumbers(4, 4)` повинна повертати `[4]`.
```js
assert.deepStrictEqual(rangeOfNumbers(4, 4), [4]);
```
Global variables should not be used to cache the array.
Не використовуйте глобальні змінні для кешування масиву.
```js
rangeOfNumbers(1, 3)

View File

@@ -1,6 +1,6 @@
---
id: 587d7b7e367417b2b2512b24
title: Використання умовного (трикомпонентного) оператора
title: Використання умовного (тернарного) оператора
challengeType: 1
forumTopicId: 301181
dashedName: use-the-conditional-ternary-operator
@@ -8,11 +8,11 @@ dashedName: use-the-conditional-ternary-operator
# --description--
<dfn>Умовний оператор</dfn>, який також називається <dfn>трикомпонентним оператором</dfn>, може використовуватися як однорядковий "if-else" вираз.
<dfn>Умовний оператор</dfn>, який також називається <dfn>тернарним оператором</dfn>, можна використовувати як однорядкову інструкцію «if-else».
Синтаксисом є `a ? b : c`, де `a` - це умова, `b` - це код, що запускається, коли умова повертає `true` і `c` - код, що запускається, коли умова повертає `false`.
Синтаксисом є `a ? b : c`, де `a` умова, `b` код, якщо умова повертає `true` та `c` код, якщо умова повертає `false`.
Ця функція використовує `if/else` твердження для того, щоб перевірити умову:
Ця функція використовує інструкцію `if/else`, щоб перевірити умову:
```js
function findGreater(a, b) {
@@ -35,29 +35,29 @@ function findGreater(a, b) {
# --instructions--
Використовуйте умовний оператор у функції `checkEqual`, щоб перевірити чи два числа рівні, чи ні. Функція повинна повернути рядок `Equal` або рядок `Not Equal`.
Використайте умовний оператор у функції `checkEqual`, щоб перевірити, чи два числа рівні. Функція повинна повернути рядок `Equal` або рядок `Not Equal`.
# --hints--
`checkEqual` має використовувати умовний оператор
`checkEqual` повинна використовувати умовний оператор
```js
assert(/.+?\s*?\?\s*?.+?\s*?:\s*?.+?/.test(code));
```
`checkEqual(1, 2)` повинен повертати рядок `Not Equal`
`checkEqual(1, 2)` повинна повертати рядок `Not Equal`
```js
assert(checkEqual(1, 2) === 'Not Equal');
```
`checkEqual(1, 1)` повинен повертати рядок `Equal`
`checkEqual(1, 1)` повинна повертати рядок `Equal`
```js
assert(checkEqual(1, 1) === 'Equal');
```
`checkEqual(1, -1)` повинен повертати рядок `Not Equal`
`checkEqual(1, -1)` повинна повертати рядок `Not Equal`
```js
assert(checkEqual(1, -1) === 'Not Equal');

View File

@@ -1,6 +1,6 @@
---
id: 587d7b7e367417b2b2512b22
title: Використайте функцію ParseInt з радіусом
title: Використання функції parseInt з розрядом
challengeType: 1
videoUrl: 'https://scrimba.com/c/c6K4Kh3'
forumTopicId: 301182
@@ -9,7 +9,7 @@ dashedName: use-the-parseint-function-with-a-radix
# --description--
Функція `parseInt()` аналізує рядок і повертає ціле число. Для радікса потрібен другий аргумент, який визначає основу числа у рядку. Радіксом може бути ціле число від 2 до 36.
Функція `parseInt()` аналізує рядок і повертає ціле число. Вона приймає другий аргумент для розряду, який вказує базу числа в рядку. Розрядом може бути ціле число від 2 до 36.
Виклик функції виглядає так:
@@ -23,39 +23,39 @@ parseInt(string, radix);
const a = parseInt("11", 2);
```
Змінна радікса говорить, що `11` знаходиться у двійковій системі або у базі 2. Цей приклад перетворює рядок `11` на ціле число `3`.
Змінна розряду каже, що `11` знаходиться у двійковій системі, або у базі 2. Цей приклад перетворює рядок `11` на ціле число `3`.
# --instructions--
Використовуйте `parseInt()` у функції `convertToInteger`, щоб воно перетворило двійкове число на ціле число і повернуло його.
Використайте `parseInt()` у функції `convertToInteger`, щоб двійкове число перетворилось на ціле число і повернулось.
# --hints--
`convertToInteger` має використати функцію `parseInt()`
`convertToInteger` повинна використовувати функцію `parseInt()`
```js
assert(/parseInt/g.test(code));
```
`convertToInteger("10011")` має повернути число
`convertToInteger("10011")` повинна повертати число
```js
assert(typeof convertToInteger('10011') === 'number');
```
`convertToInteger("10011")` має повернути 19
`convertToInteger("10011")` повинна повертати 19
```js
assert(convertToInteger('10011') === 19);
```
`convertToInteger("111001")` має повернути 57
`convertToInteger("111001")` повинна повертати 57
```js
assert(convertToInteger('111001') === 57);
```
`convertToInteger("JamesBond")` має повернути `NaN`
`convertToInteger("JamesBond")` повинна повертати `NaN`
```js
assert.isNaN(convertToInteger('JamesBond'));

View File

@@ -1,6 +1,6 @@
---
id: 587d7b7e367417b2b2512b23
title: Використовуйте Функцію parseInt
title: Використання функції parseInt
challengeType: 1
videoUrl: 'https://scrimba.com/c/cm83LSW'
forumTopicId: 301183
@@ -15,39 +15,39 @@ dashedName: use-the-parseint-function
const a = parseInt("007");
```
Наведена вище функція перетворює рядок `007` у ціле `7`. Якщо перший символ у рядку не може бути перетвореним у число, тоді він повертає `NaN`.
Наведена вище функція перетворює рядок `007` на ціле число `7`. Якщо перший символ у рядку не можна перетворити на число, повертається `NaN`.
# --instructions--
Використовуйте `parseInt()` у функції `convertToInteger`, щоб вона конвертувала вхідний рядок `str` у ціле число та повернула його.
Використайте `parseInt()` у функції `convertToInteger`, щоб вхідний рядок `str` перетворився на ціле число та повернувся.
# --hints--
`convertToInteger` має використати функцію `parseInt()`
`convertToInteger` повинна використовувати функцію `parseInt()`
```js
assert(/parseInt/g.test(code));
```
`convertToInteger("56")` має повернути число
`convertToInteger("56")` повинна повертати число
```js
assert(typeof convertToInteger('56') === 'number');
```
`convertToInteger("56")` має повернути 56
`convertToInteger("56")` повинна повертати 56
```js
assert(convertToInteger('56') === 56);
```
`convertToInteger("77")` має повернути 77
`convertToInteger("77")` повинна повертати 77
```js
assert(convertToInteger('77') === 77);
```
`convertToInteger("JamesBond")` має повернути `NaN`
`convertToInteger("JamesBond")` повинна повертати `NaN`
```js
assert.isNaN(convertToInteger('JamesBond'));

View File

@@ -9,9 +9,9 @@ dashedName: using-objects-for-lookups
# --description--
Об'єкти можна вважати сховищем ключів та значень, як словники. Якщо ви маєте табличні дані, ви краще можете використати об'єкт для пошуку значень, ніж `switch` твердження або `if/else` ланцюжок. Це найбільш корисно, коли ви знаєте, що ваші вхідні дані обмежені до певного діапазону.
Об'єкти можна вважати сховищем ключів/значень, як словники. Якщо ви маєте табличні дані, для пошуку значень краще використати об'єкт, а не інструкцію `switch` чи ланцюжок `if/else`. В такому випадку найкраще, якщо ви знаєте, що ваші вхідні дані обмежені до певного діапазону.
Here is an example of an article object:
Ось приклад об’єкта-публікації:
```js
const article = {
@@ -30,11 +30,11 @@ const value = "title";
const valueLookup = article[value];
```
`articleAuthor` is the string `Kaashan Hussain`, `articleLink` is the string `https://www.freecodecamp.org/news/a-complete-guide-to-creating-objects-in-javascript-b0e2450655e8/`, and `valueLookup` is the string `How to create objects in JavaScript`.
`articleAuthor` є рядком `Kaashan Hussain`, `articleLink` є рядком `https://www.freecodecamp.org/news/a-complete-guide-to-creating-objects-in-javascript-b0e2450655e8/`, а `valueLookup` є рядком `How to create objects in JavaScript`.
# --instructions--
Переробіть ключове твердження на об'єкт, що називається `lookup`. Використовуйте його, щоб шукати `val` і призначати пов'язаний рядок до `result` змінної.
Перетворіть інструкцію switch на обєкт під назвою `lookup`. Використайте його, щоб знайти `val` та призначати пов'язаний рядок до змінної `result`.
# --hints--
@@ -80,13 +80,13 @@ assert(phoneticLookup('foxtrot') === 'Frank');
assert(typeof phoneticLookup('') === 'undefined');
```
Вам не слід змінювати `return` твердження
Ви не повинні змінювати інструкцію `return`
```js
assert(code.match(/return\sresult;/));
```
Вам не слід використовувати `case`, `switch` або `if` твердження
Ви не повинні використовувати інструкції `case`, `switch` або `if`
```js
assert(

View File

@@ -9,9 +9,9 @@ dashedName: word-blanks
# --description--
You are provided sentences with some missing words, like nouns, verbs, adjectives and adverbs. You then fill in the missing pieces with words of your choice in a way that the completed sentence makes sense.
Вам надано речення з пропущеними словами: іменниками, дієсловами, прикметниками та прислівниками. Потім ви заповнюєте пропуски словами так, щоб завершене речення мало сенс.
Consider this sentence - It was really **\_\_\_\_**, and we **\_\_\_\_** ourselves **\_\_\_\_**. This sentence has three missing pieces- an adjective, a verb and an adverb, and we can add words of our choice to complete it. We can then assign the completed sentence to a variable as follows:
Розгляньте речення «It was really **\_\_\_\_**, and we **\_\_\_\_** ourselves **\_\_\_\_**». У цьому реченні відсутні три слова: прикметник, дієслово та прислівник; ми можемо додати вибрані слова, щоб завершити речення. Потім ми можемо присвоїти завершене речення змінній наступним чином:
```js
const sentence = "It was really " + "hot" + ", and we " + "laughed" + " ourselves " + "silly" + ".";
@@ -19,21 +19,21 @@ const sentence = "It was really " + "hot" + ", and we " + "laughed" + " ourselve
# --instructions--
In this challenge, we provide you with a noun, a verb, an adjective and an adverb. You need to form a complete sentence using words of your choice, along with the words we provide.
У цьому завданні вам надано іменник, дієслово, прикметник та прислівник. Ви повинні завершити речення, використовуючи слова на власний вибір, а також надані нами.
You will need to use the string concatenation operator `+` to build a new string, using the provided variables: `myNoun`, `myAdjective`, `myVerb`, and `myAdverb`. You will then assign the formed string to the `wordBlanks` variable. You should not change the words assigned to the variables.
Ви повинні використати оператор конкатенації `+`, щоб побудувати новий рядок, використовуючи надані змінні: `myNoun`, `myAdjective`, `myVerb` та `myAdverb`. Потім ви присвоїте сформований рядок до змінної `wordBlanks`. Ви не повинні змінювати слова, присвоєні зміннім.
You will also need to account for spaces in your string, so that the final sentence has spaces between all the words. The result should be a complete sentence.
Вам також потрібно врахувати пропуски у рядку, щоб завершене речення містило пробіли між усіма словами. Результатом повинне бути завершене речення.
# --hints--
`wordBlanks` має бути рядком.
`wordBlanks` повинен бути рядком.
```js
assert(typeof wordBlanks === 'string');
```
You should not change the values assigned to `myNoun`, `myVerb`, `myAdjective` or `myAdverb`.
Ви не повинні змінювати значення, присвоєні до `myNoun`, `myVerb`, `myAdjective` або `myAdverb`.
```js
assert(
@@ -44,7 +44,7 @@ assert(
);
```
You should not directly use the values `dog`, `ran`, `big`, or `quickly` to create `wordBlanks`.
Ви не повинні напряму використовувати значення `dog`, `ran`, `big` або `quickly`, щоб створити `wordBlanks`.
```js
const newCode = removeAssignments(code);
@@ -56,7 +56,7 @@ assert(
);
```
`wordBlanks` should contain all of the words assigned to the variables `myNoun`, `myVerb`, `myAdjective` and `myAdverb` separated by non-word characters (and any additional words of your choice).
`wordBlanks` повинен містити всі слова, присвоєні до змінних `myNoun`, `myVerb`, `myAdjective` та `myAdverb`, розділені розділовим знаком (та додаткові слова на ваш вибір).
```js
assert(

View File

@@ -1,6 +1,6 @@
---
id: 56bbb991ad1ed5201cd392cf
title: Створення багаторазового коду JavaScript за допомогою функцій
title: Написання багаторазового JavaScript із функціями
challengeType: 1
videoUrl: 'https://scrimba.com/c/cL6dqfy'
forumTopicId: 18378
@@ -9,7 +9,7 @@ dashedName: write-reusable-javascript-with-functions
# --description--
У JavaScript можна розділити код на повторно використовувані частини, які називаються <dfn>функціями</dfn>.
У JavaScript можна розділити код на багаторазові частини, які називаються <dfn>функціями</dfn>.
Приклад функції:
@@ -19,13 +19,13 @@ function functionName() {
}
```
Ви можете викликати або <dfn>активувати</dfn> цю функцію, використавши дужки для написання її назви, ось так: `functionName();`. При кожному виклику функції на консоль буде виводитись повідомлення `Hello World`. Щоразу як буде викликана функція, увесь код між фігурними дужками буде виконуватись.
Ви можете викликати або <dfn>активувати</dfn> цю функцію, використавши дужки для написання її назви, ось так: `functionName();`. При кожному виклику функції на консоль буде виводитись повідомлення `Hello World`. При кожному виклику функції буде виконуватись код у фігурних дужках.
# --instructions--
<ol>
<li>
Створіть функцію, яка називається <code>reusableFunction</code>, що друкує рядок <code>Hi World</code> на консоль розробників.
Створіть функцію під назвою <code>reusableFunction</code>, яка друкує рядок <code>Hi World</code> на консоль.
</li>
<li>
Викличте функцію.
@@ -34,19 +34,19 @@ function functionName() {
# --hints--
`reusableFunction` повинен бути функцією.
`reusableFunction` повинна бути функцією.
```js
assert(typeof reusableFunction === 'function');
```
Якщо `reusableFunction` буде викликано, то він має виводити рядок `Hi World` на консоль.
Якщо `reusableFunction` буде викликано, то вона повинна виводити рядок `Hi World` на консоль.
```js
assert(testConsole());
```
Викличте функцію `reusableFunction` після її визначення.
Ви повинні викликати `reusableFunction` після її визначення.
```js
const functionStr = reusableFunction && __helpers.removeWhiteSpace(reusableFunction.toString());