mirror of
https://github.com/freeCodeCamp/freeCodeCamp.git
synced 2026-04-08 16:00:58 -04:00
chore(i18n,learn): processed translations (#50972)
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
---
|
||||
id: 5a661e0f1068aca922b3ef17
|
||||
title: Доступ до вмісту масиву завдяки дужковій нотації
|
||||
title: Доступ до вмісту масиву за допомогою дужкової нотації
|
||||
challengeType: 1
|
||||
forumTopicId: 301149
|
||||
dashedName: access-an-arrays-contents-using-bracket-notation
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
id: 587d7b7c367417b2b2512b1a
|
||||
title: Доступ до назв властивостей завдяки дужковій нотації
|
||||
title: Доступ до назв властивостей за допомогою дужкової нотації
|
||||
challengeType: 1
|
||||
forumTopicId: 301150
|
||||
dashedName: access-property-names-with-bracket-notation
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
id: 587d78b2367417b2b2512b0e
|
||||
title: Додавання елементів до масиву завдяки push() та unshift()
|
||||
title: Додавання елементів до масиву за допомогою push() та unshift()
|
||||
challengeType: 1
|
||||
forumTopicId: 301151
|
||||
dashedName: add-items-to-an-array-with-push-and-unshift
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
id: 587d78b3367417b2b2512b11
|
||||
title: Додавання елементів завдяки splice()
|
||||
title: Додавання елементів за допомогою splice()
|
||||
challengeType: 1
|
||||
forumTopicId: 301152
|
||||
dashedName: add-items-using-splice
|
||||
@@ -19,7 +19,7 @@ numbers.splice(startIndex, amountToDelete, 13, 14);
|
||||
console.log(numbers);
|
||||
```
|
||||
|
||||
Повторний елемент `12` видалений, та ми додали `13` й `14` на цьому індексі. Тепер масив `numbers` буде мати вигляд `[ 10, 11, 12, 13, 14, 15 ]`.
|
||||
Повторний елемент `12` видалений, та ми додали `13` й `14` на цьому індексі. Тепер масивом `numbers` буде `[ 10, 11, 12, 13, 14, 15 ]`.
|
||||
|
||||
Тут ми починаємо з масиву чисел. Потім ми передаємо до `splice()`: індекс, з якого починаємо видалення елементів (3); кількість елементів, які потрібно видалити (1); решту аргументів (13, 14), які будуть вставлені, починаючи з того ж індексу. Зверніть увагу, що після `amountToDelete` може бути будь-яка кількість елементів (розділених комами), кожен з яких вставляється.
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
id: 587d7b7d367417b2b2512b1c
|
||||
title: Перевірте, чи має об'єкт властивість
|
||||
title: Перевірка наявності властивості в об’єкті
|
||||
challengeType: 1
|
||||
forumTopicId: 301155
|
||||
dashedName: check-if-an-object-has-a-property
|
||||
@@ -8,7 +8,7 @@ dashedName: check-if-an-object-has-a-property
|
||||
|
||||
# --description--
|
||||
|
||||
Тепер ми можемо додавати, змінювати та видаляти ключі з об'єктів. А якщо ми просто хочемо знати, чи об'єкт має конкретну властивість? JavaScript надає нам два різних способи це зробити. Один використовує метод `hasOwnProperty()` а інший використовує ключове слово `in`. Якщо у нас є об'єкт `users` з властивістю `Alan`, ми можемо перевірити її наявність одним із таких способів:
|
||||
Тепер ми можемо додавати, змінювати та видаляти ключі з об’єктів. А якщо ми просто хочемо знати, чи об’єкт має конкретну властивість? JavaScript надає нам два різних способи це зробити. Один використовує метод `hasOwnProperty()`, а інший використовує ключове слово `in`. Якщо у нас є об’єкт `users` з властивістю `Alan`, ми можемо перевірити її наявність одним із таких способів:
|
||||
|
||||
```js
|
||||
users.hasOwnProperty('Alan');
|
||||
@@ -19,11 +19,11 @@ users.hasOwnProperty('Alan');
|
||||
|
||||
# --instructions--
|
||||
|
||||
Завершіть написання функції таким чином, щоб вона повертала `true`, якщо переданий їй об'єкт містить всі чотири імені: `Alan`, `Jeff`, `Sarah` та `Ryan`, а в іншому випадку щоб повертала `false`.
|
||||
Завершіть написання функції таким чином, щоб вона повертала `true`, якщо переданий їй об’єкт містить всі чотири імені: `Alan`, `Jeff`, `Sarah` та `Ryan`, а в іншому випадку щоб повертала `false`.
|
||||
|
||||
# --hints--
|
||||
|
||||
До об'єкту `users` не можна звертатися безпосередньо
|
||||
Не звертайтесь до об’єкта `users` напряму
|
||||
|
||||
```js
|
||||
|
||||
@@ -31,7 +31,7 @@ assert(code.match(/users/gm).length <= 2)
|
||||
|
||||
```
|
||||
|
||||
Об'єкт `users` повинен містити тільки ключі `Alan`, `Jeff`, `Sarah`, та `Ryan`
|
||||
Об’єкт `users` повинен містити тільки ключі `Alan`, `Jeff`, `Sarah` та `Ryan`
|
||||
|
||||
```js
|
||||
assert(
|
||||
@@ -43,13 +43,13 @@ assert(
|
||||
);
|
||||
```
|
||||
|
||||
Функція `isEveryoneHere` повинна повертати `true` якщо `Alan`, `Jeff`, `Sarah`, та `Ryan` це властивості переданого їй об'єкту.
|
||||
Функція `isEveryoneHere` має повернути `true`, якщо `Alan`, `Jeff`, `Sarah` та `Ryan` є властивостями переданого їй об’єкту.
|
||||
|
||||
```js
|
||||
assert(isEveryoneHere(users) === true);
|
||||
```
|
||||
|
||||
Функція `isEveryoneHere` повинна повернути `false` якщо `Alan` не є властивістю переданого їй об'єкту.
|
||||
Функція `isEveryoneHere` має повернути `false`, якщо `Alan` не є властивістю переданого їй об’єкту.
|
||||
|
||||
```js
|
||||
assert(
|
||||
@@ -60,7 +60,7 @@ assert(
|
||||
);
|
||||
```
|
||||
|
||||
Функція `isEveryoneHere` повинна повернути`false` якщо `Jeff` не є властивістю переданого їй об'єкту.
|
||||
Функція `isEveryoneHere` має повернути `false`, якщо `Jeff` не є властивістю переданого їй об’єкту.
|
||||
|
||||
```js
|
||||
assert(
|
||||
@@ -71,7 +71,7 @@ assert(
|
||||
);
|
||||
```
|
||||
|
||||
Функція `isEveryoneHere` повинна повернути `false` якщо `Sarah` не є властивістю переданого їй об'єкту.
|
||||
Функція `isEveryoneHere` має повернути `false`, якщо `Sarah` не є властивістю переданого їй об’єкту.
|
||||
|
||||
```js
|
||||
assert(
|
||||
@@ -82,7 +82,7 @@ assert(
|
||||
);
|
||||
```
|
||||
|
||||
Функція `isEveryoneHere` повинна повернути `false` якщо `Ryan` не є властивістю переданого їй об'єкту.
|
||||
Функція `isEveryoneHere` має повернути `false`, якщо `Ryan` не є властивістю переданого їй об’єкту.
|
||||
|
||||
```js
|
||||
assert(
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
id: 587d7b7b367417b2b2512b17
|
||||
title: Об'єднайте масиви з Spread-оператором
|
||||
title: Об’єднання масивів за допомогою оператора розширення
|
||||
challengeType: 1
|
||||
forumTopicId: 301156
|
||||
dashedName: combine-arrays-with-the-spread-operator
|
||||
@@ -8,7 +8,7 @@ dashedName: combine-arrays-with-the-spread-operator
|
||||
|
||||
# --description--
|
||||
|
||||
Ще одна величезна перевага <dfn>spread</dfn>-оператора - це можливість комбінувати масиви або вставляти всі елементи одного масиву в інший по будь-якому індексу. Використовуючи більш традиційні види синтаксу, ми можемо об'єднувати масиви, але це дозволяє нам об'єднувати масиви тільки в кінці одного і на початку іншого. Функція Spread Synrax робить наступну операцію надзвичайно простою:
|
||||
Ще одна величезна перевага оператора <dfn>розширення</dfn> — можливість об’єднувати масиви або вставляти всі елементи одного масиву в інший по будь-якому індексу. Використовуючи більш традиційні види синтаксу, ми можемо об’єднувати масиви, але це дозволяє нам об’єднувати масиви тільки в кінці одного і на початку іншого. Синтаксис розширення робить цю операцію надзвичайно простою:
|
||||
|
||||
```js
|
||||
let thisArray = ['sage', 'rosemary', 'parsley', 'thyme'];
|
||||
@@ -16,23 +16,23 @@ let thisArray = ['sage', 'rosemary', 'parsley', 'thyme'];
|
||||
let thatArray = ['basil', 'cilantro', ...thisArray, 'coriander'];
|
||||
```
|
||||
|
||||
`thatArray` буде мати значення `['basil', 'cilantro', 'sage', 'rosemary', 'parsley', 'thyme', 'coriander']`.
|
||||
`thatArray` матиме значення `['basil', 'cilantro', 'sage', 'rosemary', 'parsley', 'thyme', 'coriander']`.
|
||||
|
||||
Використовуючи функцію spread synrax, ми щойно виконали операцію, яка була б складнішою і більш детальною, якби ми використовували традиційні методи.
|
||||
Використовуючи синтаксис розширення, ми щойно виконали операцію, яка була б складнішою і детальнішою, якби ми використовували традиційні методи.
|
||||
|
||||
# --instructions--
|
||||
|
||||
Ми визначили функцію `spreadOut`, яка повертає змінну `sentence`. Змініть функцію використовуючи <dfn>spread</dfn> оператор, щоб вона повертала масив `['learning', 'to', 'code', 'is', 'fun']`.
|
||||
Ми визначили функцію `spreadOut`, яка повертає змінну `sentence`. Змініть функцію, використовуючи оператор <dfn>розширення</dfn>, щоб вона повернула масив `['learning', 'to', 'code', 'is', 'fun']`.
|
||||
|
||||
# --hints--
|
||||
|
||||
`spreadOut` повинен повернути `["learning", "to", "code", "is", "fun"]`
|
||||
`spreadOut` має повернути `["learning", "to", "code", "is", "fun"]`
|
||||
|
||||
```js
|
||||
assert.deepEqual(spreadOut(), ['learning', 'to', 'code', 'is', 'fun']);
|
||||
```
|
||||
|
||||
Функція `spreadOut` повинна використовувати spread syntax
|
||||
Функція `spreadOut` має використовувати синтаксис розширення
|
||||
|
||||
```js
|
||||
assert.notStrictEqual(spreadOut.toString().search(/[...]/), -1);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
id: 587d7b7b367417b2b2512b13
|
||||
title: Скопіюйте масив з Spread-оператором
|
||||
title: Копіювання масиву за допомогою оператора розширення
|
||||
challengeType: 1
|
||||
forumTopicId: 301157
|
||||
dashedName: copy-an-array-with-the-spread-operator
|
||||
@@ -8,24 +8,24 @@ dashedName: copy-an-array-with-the-spread-operator
|
||||
|
||||
# --description--
|
||||
|
||||
Хоча `slice()` дозволяє нам вибирати, які елементи масиву копіювати, серед кількох інших корисних завдань, новий <dfn>spread-оператор</dfn> ES6 дозволяє нам легко копіювати *all* елементи масиву, по порядку, з простим і дуже читабельним синтаксисом. Spread синтаксис виглядає так: `...`
|
||||
Хоча `slice()` дозволяє нам вибирати, які елементи масиву копіювати, новий <dfn>оператор розширення</dfn> з ES6 дозволяє легко копіювати *всі* елементи масиву послідовно завдяки простому і читабельному синтаксису. Синтаксис розширення виглядає так: `...`
|
||||
|
||||
На практиці ми можемо використати spread-оператор для копіювання масиву таким чином:
|
||||
На практиці ми можемо використати оператор розширення для копіювання масиву:
|
||||
|
||||
```js
|
||||
let thisArray = [true, true, undefined, false, null];
|
||||
let thatArray = [...thisArray];
|
||||
```
|
||||
|
||||
`thatArray` дорівнює `[true, true, undefined, false, null]`. `thisArray` залишається без змін і `thatArray` містить ті ж елементи, що й `thisArray`.
|
||||
`thatArray` дорівнює `[true, true, undefined, false, null]`. `thisArray` залишається без змін, а `thatArray` містить ті ж елементи, що й `thisArray`.
|
||||
|
||||
# --instructions--
|
||||
|
||||
Ми визначили функцію, `copyMachine`, яка приймає `arr` (масив) та `num` (номер) як аргументи. Функція повинна повертати новий масив, що складається з `num` копій `arr`. Ми виконали більшу частину роботи за вас, але це поки не працює. Змініть функцію, використовуючи spread синтаксис, щоб вона працювала правильно (підказка: тут може стати в нагоді інший метод, який ми вже розглядали!).
|
||||
Ми визначили функцію `copyMachine`, яка приймає `arr` (масив) та `num` (число) як аргументи. Функція повинна повертати новий масив, що складається з `num` копій `arr`. Ми виконали більшу частину роботи за вас, але це поки не працює. Змініть функцію, використовуючи синтаксис розширення, щоб вона працювала правильно (підказка: тут може стати в пригоді інший метод, який ми вже розглядали!).
|
||||
|
||||
# --hints--
|
||||
|
||||
`copyMachine([true, false, true], 2)` повинна повернути `[[true, false, true], [true, false, true]]`
|
||||
`copyMachine([true, false, true], 2)` має повернути `[[true, false, true], [true, false, true]]`
|
||||
|
||||
```js
|
||||
assert.deepEqual(copyMachine([true, false, true], 2), [
|
||||
@@ -34,7 +34,7 @@ assert.deepEqual(copyMachine([true, false, true], 2), [
|
||||
]);
|
||||
```
|
||||
|
||||
`copyMachine([1, 2, 3], 5)` повинна повернути `[[1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3]]`
|
||||
`copyMachine([1, 2, 3], 5)` має повернути `[[1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3]]`
|
||||
|
||||
```js
|
||||
assert.deepEqual(copyMachine([1, 2, 3], 5), [
|
||||
@@ -46,13 +46,13 @@ assert.deepEqual(copyMachine([1, 2, 3], 5), [
|
||||
]);
|
||||
```
|
||||
|
||||
`copyMachine([true, true, null], 1)` повинна повернути `[[true, true, null]]`
|
||||
`copyMachine([true, true, null], 1)` має повернути `[[true, true, null]]`
|
||||
|
||||
```js
|
||||
assert.deepEqual(copyMachine([true, true, null], 1), [[true, true, null]]);
|
||||
```
|
||||
|
||||
`copyMachine(["it works"], 3)` повинна повернути `[["it works"], ["it works"], ["it works"]]`
|
||||
`copyMachine(["it works"], 3)` має повернути `[["it works"], ["it works"], ["it works"]]`
|
||||
|
||||
```js
|
||||
assert.deepEqual(copyMachine(['it works'], 3), [
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
id: 587d7b7a367417b2b2512b12
|
||||
title: Скопіювати елементи масиву використовуючи slice()
|
||||
title: Копіювання елементів масиву за допомогою slice()
|
||||
challengeType: 1
|
||||
forumTopicId: 301158
|
||||
dashedName: copy-array-items-using-slice
|
||||
@@ -8,7 +8,7 @@ dashedName: copy-array-items-using-slice
|
||||
|
||||
# --description--
|
||||
|
||||
Наступний метод, який ми розглянемо це `slice()`. Замість зміни масиву `slice()` копіює або *extracts* задану кількість елементів в новий масив, залишаючи масив, для якого він викликається, незмінним. `slice()`приймає лише 2 параметри: перший - це індекс, з якого починається вибірка, а другий - індекс, за яким вибірка припиняється (вибірка відбуватиметься, але не включаючи елемент у цьому індексі). Врахуйте це:
|
||||
Наступним розглянемо метод `slice()`. Замість зміни масиву метод `slice()` копіює або *вилучає* задану кількість елементів в новий масив, залишаючи масив, для якого він викликається, незмінним. `slice()`приймає лише 2 параметри: індекс, з якого починається вибірка та індекс, за якого вибірка припиняється (вибірка відбуватиметься, але не включаючи елемент за цим індексом). Розглянемо приклад:
|
||||
|
||||
```js
|
||||
let weatherConditions = ['rain', 'snow', 'sleet', 'hail', 'clear'];
|
||||
@@ -16,17 +16,17 @@ let weatherConditions = ['rain', 'snow', 'sleet', 'hail', 'clear'];
|
||||
let todaysWeather = weatherConditions.slice(1, 3);
|
||||
```
|
||||
|
||||
`todaysWeather` матиме значення `['snow', 'sleet']`, хоча `weatherConditions` як і раніше буде мати `['rain', 'snow', 'sleet', 'hail', 'clear']`.
|
||||
`todaysWeather` матиме значення `['snow', 'sleet']`, хоча `weatherConditions` досі матиме `['rain', 'snow', 'sleet', 'hail', 'clear']`.
|
||||
|
||||
Фактично, ми створили новий масив, вибираючи елементи з масиву, який вже існує.
|
||||
Фактично, ми створили новий масив, вилучаючи елементи з масиву, який вже існує.
|
||||
|
||||
# --instructions--
|
||||
|
||||
Ми визначили функцію `forecast`, яка приймає масив як аргумент. Змініть функцію за допомогою `slice()`, щоб вибрати інформацію з масиву аргументів і повернути новий масив, що містить елементи рядка `warm` і `sunny`.
|
||||
Ми визначили функцію `forecast`, яка приймає масив як аргумент. Змініть функцію за допомогою `slice()`, щоб вилучити інформацію з масиву аргументів і повернути новий масив, що містить елементи `warm` та `sunny`.
|
||||
|
||||
# --hints--
|
||||
|
||||
`forecast` повинна повернути `["warm", "sunny"]`
|
||||
`forecast` має повернути `["warm", "sunny"]`
|
||||
|
||||
```js
|
||||
assert.deepEqual(
|
||||
@@ -35,7 +35,7 @@ assert.deepEqual(
|
||||
);
|
||||
```
|
||||
|
||||
Функція `forecast` повинна використовувати `slice()` метод
|
||||
Функція `forecast` повинна використовувати метод `slice()`
|
||||
|
||||
```js
|
||||
assert(/\.slice\(/.test(code));
|
||||
|
||||
@@ -8,9 +8,9 @@ dashedName: create-complex-multi-dimensional-arrays
|
||||
|
||||
# --description--
|
||||
|
||||
Чудово! Ви щойно дізналися багато нового про масиви! Це був досить загальний огляд, і є ще багато чого, що потрібно дізнатися про роботу з масивами, багато чого ви побачите в наступних розділах. Але перш ніж перейти до розгляду <dfn>Objects</dfn>, давайте ще раз глянемо і подивимося, яким чином масиви можуть стати дещо складнішими за ті, які ми бачили в попередніх завданнях.
|
||||
Чудово! Ви дізналися багато нового про масиви! Це був досить загальний огляд, і є ще багато чого, що потрібно дізнатися про роботу з масивами, багато чого ви побачите в наступних розділах. Але перш ніж перейти до розгляду <dfn>об’єктів</dfn>, давайте ще раз глянемо, яким чином масиви можуть стати дещо складнішими за ті, які ми бачили в попередніх завданнях.
|
||||
|
||||
Одна з найпотужніших функцій при розгляді масивів як структур даних полягає в тому, що масиви можуть містити або навіть повністю складатися з інших масивів. У попередніх завданнях ми бачили масиви, які містять масиви, але досить прості. Однак масиви можуть містити нескінченну глибину масивів, які можуть містити інші масиви, кожен зі своїми довільними рівнями глибини і так далі. Таким чином, масив може дуже швидко перетворитися в дуже складну структуру даних, відому як <dfn>multi-dimensional</dfn> або вкладений масив. Розглянемо наступний приклад:
|
||||
Одна з найпотужніших функцій при розгляді масивів як структур даних полягає в тому, що масиви можуть містити або навіть повністю складатися з інших масивів. У попередніх завданнях ми бачили масиви, які містять масиви, але досить прості. Однак масиви можуть містити нескінченну глибину масивів, які можуть містити інші масиви, кожен зі своїми довільними рівнями глибини і так далі. Таким чином, масив може дуже швидко перетворитися в дуже складну структуру даних, відому як <dfn>багатовимірний</dfn> або вкладений масив. Розглянемо приклад:
|
||||
|
||||
```js
|
||||
let nestedArray = [
|
||||
@@ -31,15 +31,15 @@ let nestedArray = [
|
||||
];
|
||||
```
|
||||
|
||||
Масив `deep` вкладений на глибину 2 рівня. Масиви `deeper` мають глибину третього рівня. Масиви `deepest` мають 4 рівень, а `deepest-est?` - 5.
|
||||
Масив `deep` вкладений на глибину другого рівня. Масиви `deeper` мають глибину третього рівня. Масиви `deepest` мають четвертий рівень, а `deepest-est?` — п’ятий.
|
||||
|
||||
Хоча цей приклад може здатися заплутаним, такий рівень складності не є чимось незвичним або навіть незвичайним при роботі з великими обсягами даних. Тим не менш, ми все ще можемо дуже легко отримати доступ до найглибших рівнів масиву цього складного масиву за допомогою дужок:
|
||||
Хоча цей приклад може здатися заплутаним, такий рівень складності не є чимось незвичним або навіть незвичайним при роботі з великими обсягами даних. Проте ми досі можемо дуже легко отримати доступ до найглибших рівнів масиву цього складного масиву за допомогою дужкової нотації:
|
||||
|
||||
```js
|
||||
console.log(nestedArray[2][1][0][0][0]);
|
||||
```
|
||||
|
||||
Це записує рядок `deepest-est?`. І тепер, коли ми знаємо, де знаходиться цей фрагмент даних, ми можемо скинути його, якщо нам потрібно:
|
||||
Це виводить рядок `deepest-est?`. І тепер, коли ми знаємо, де знаходиться цей фрагмент даних, його можна скинути, якщо потрібно:
|
||||
|
||||
```js
|
||||
nestedArray[2][1][0][0][0] = 'deeper still';
|
||||
@@ -47,15 +47,15 @@ nestedArray[2][1][0][0][0] = 'deeper still';
|
||||
console.log(nestedArray[2][1][0][0][0]);
|
||||
```
|
||||
|
||||
Тепер він записує `deeper still`.
|
||||
Тепер він виводить `deeper still`.
|
||||
|
||||
# --instructions--
|
||||
|
||||
Ми визначили змінну `myNestedArray`, що дорівнює масиву. Змініть `myNestedArray`, використовуючи будь-яку комбінацію <dfn>strings</dfn>, <dfn>numbers</dfn>, і <dfn>booleans</dfn> для елементів даних, так, щоб він мав точно п'ять рівнів глибини (пам'ятаєте, самий зовнішній масив - це рівень 1). Десь на третьому рівні, додайте рядок `deep`, на четвертому рівні, додайте рядок `deeper` та на п'ятому рівні, додайте рядок `deepest`.
|
||||
Ми визначили змінну `myNestedArray`, що дорівнює масиву. Змініть `myNestedArray`, використовуючи будь-яку комбінацію <dfn>рядків</dfn>, <dfn>чисел</dfn> і <dfn>булевих значень</dfn> для елементів даних так, щоб масив мав п’ять рівнів глибини (пам’ятайте, зовнішній масив — це рівень 1). Десь на третьому рівні додайте рядок `deep`, на четвертому рівні додайте рядок `deeper` та на п’ятому рівні додайте рядок `deepest`.
|
||||
|
||||
# --hints--
|
||||
|
||||
`myNestedArray` повинен містити лише цифри, логічні значення та рядки в якості елементів даних
|
||||
`myNestedArray` повинен містити лише числа, булеві значення та рядки як елементи даних
|
||||
|
||||
```js
|
||||
assert.strictEqual(
|
||||
@@ -79,7 +79,7 @@ assert.strictEqual(
|
||||
);
|
||||
```
|
||||
|
||||
`myNestedArray` повинен мати рівно 5 рівнів глибини
|
||||
`myNestedArray` повинен містити рівно п’ять рівнів глибини
|
||||
|
||||
```js
|
||||
assert.strictEqual(
|
||||
@@ -102,7 +102,7 @@ assert.strictEqual(
|
||||
);
|
||||
```
|
||||
|
||||
`myNestedArray` повинен містити рівно одне входження рядка `deep` в масиві, вкладеному в 3 рівень глибини
|
||||
`myNestedArray` повинен мати один рядок `deep` в масиві третього рівня глибини
|
||||
|
||||
```js
|
||||
assert(
|
||||
@@ -131,7 +131,7 @@ assert(
|
||||
);
|
||||
```
|
||||
|
||||
`myNestedArray` повинен містити рівно одне входження рядка `deeper` в масиві, вкладеному в 4 рівень глибини
|
||||
`myNestedArray` повинен мати один рядок `deeper` в масиві четвертого рівня глибини
|
||||
|
||||
```js
|
||||
assert(
|
||||
@@ -160,7 +160,7 @@ assert(
|
||||
);
|
||||
```
|
||||
|
||||
`myNestedArray` повинен містити рівно одне входження рядка `deepest` в масиві, вкладеному в 5 рівень глибини
|
||||
`myNestedArray` повинен мати один рядок `deepest` в масиві п’ятого рівня глибини
|
||||
|
||||
```js
|
||||
assert(
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
id: 587d7b7d367417b2b2512b1e
|
||||
title: Створення масиву всіх ключів об’єкта за допомогою Object.keys()
|
||||
title: Створення масиву зі всіх ключів об’єкта за допомогою Object.keys()
|
||||
challengeType: 1
|
||||
forumTopicId: 301160
|
||||
dashedName: generate-an-array-of-all-object-keys-with-object-keys
|
||||
@@ -8,15 +8,15 @@ dashedName: generate-an-array-of-all-object-keys-with-object-keys
|
||||
|
||||
# --description--
|
||||
|
||||
Ми також можемо створити масив, який містить всі ключі, що зберігаються в об’єкті за допомогою методу `Object.keys()`. Цей метод приймає об’єкт як аргумент та повертає масив рядків, що представляють кожну властивість об’єкта. Знову ж таки, не буде певного порядку записів в масиві.
|
||||
Ми також можемо створити масив, який містить всі ключі, що зберігаються в об’єкті, за допомогою методу `Object.keys()`. Цей метод приймає об’єкт як аргумент та повертає масив рядків, що представляють кожну властивість об’єкта. Знову ж таки, не буде певного порядку записів в масиві.
|
||||
|
||||
# --instructions--
|
||||
|
||||
Завершіть написання функції `getArrayOfUsers`, щоб вона повертала масив, що містить всі властивості об'єкта, який він отримує в якості аргументу.
|
||||
Завершіть написання функції `getArrayOfUsers`, щоб вона повертала масив, який містить всі властивості об’єкта, що передають як аргумент.
|
||||
|
||||
# --hints--
|
||||
|
||||
Об'єкт `users` повинен містити тільки ключі `Alan`, `Jeff`, `Sarah`, та `Ryan`
|
||||
Об’єкт `users` повинен містити тільки ключі `Alan`, `Jeff`, `Sarah` та `Ryan`
|
||||
|
||||
```js
|
||||
assert(
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
id: 587d7b7b367417b2b2512b15
|
||||
title: Ітерація через усі масиви за допомогою циклів
|
||||
title: Ітерація через усі елементи масиву за допомогою циклів for
|
||||
challengeType: 1
|
||||
forumTopicId: 301161
|
||||
dashedName: iterate-through-all-an-arrays-items-using-for-loops
|
||||
@@ -8,9 +8,9 @@ dashedName: iterate-through-all-an-arrays-items-using-for-loops
|
||||
|
||||
# --description--
|
||||
|
||||
Іноді при роботі з масивами дуже зручно мати можливість перебирати кожен елемент, щоб знайти один або кілька елементів, які можуть нам знадобитися, або керувати масивом в залежності від того, які елементи даних відповідають певному набору критеріїв. JavaScript надає різні побудови в методах, що ітерують крізь масиви й надають змогу досягнути певних результатів різними шляхами (such as `every()`, `forEach()`, `map()`, etc.). Однак, ця техніка є гнучкою й більш спроможна до контролю `for` циклу.
|
||||
Іноді при роботі з масивами дуже зручно мати можливість перебирати кожен елемент, щоб знайти один або кілька елементів, які можуть нам знадобитися, або керувати масивом в залежності від того, які елементи даних відповідають певному набору критеріїв. JavaScript надає декілька вбудованих методів, які ітерують через масиви й надають змогу досягнути певних результатів (як-от `every()`, `forEach()`, `map()` тощо). Однак найгнучкішою технікою, яка надає достатній контроль, є цикл `for`.
|
||||
|
||||
Розглянемо наступний приклад:
|
||||
Розглянемо приклад:
|
||||
|
||||
```js
|
||||
function greaterThanTen(arr) {
|
||||
@@ -26,11 +26,11 @@ function greaterThanTen(arr) {
|
||||
greaterThanTen([2, 12, 8, 14, 80, 0, 1]);
|
||||
```
|
||||
|
||||
Завдяки використанню `for` у циклі, ця функція ітерує й надає доступ до кожного елементу в масиві простого тесту, який ми створили. Таким чином ми легко й автоматично визначаємо елементи дати, що більше, ніж `10`, й повертаємо новий масив, `[12, 14, 80]`, який містить ці елементи.
|
||||
Використовуючи цикл `for`, ця функція ітерує та отримує доступ до кожного елемента масиву, а потім виконує створений нами тест. Таким чином ми легко й програмно визначаємо елементи, які більші за `10` та повертаємо новий масив `[12, 14, 80]`, який містить ці елементи.
|
||||
|
||||
# --instructions--
|
||||
|
||||
Ми встановили функцію, `filteredArray`, яка обирає `arr`, вкладений масив, `elem` як аргументи, й повертає новий масив. `elem` означає елемент, що може не бути присутнім в одному або більше масивах в межах `arr`. Покращте функцію, використовуючи `for` циклу, для повернення відфільтрованої версії переданого масиву, так щоб версію в межах `arr` зі `elem` було прибрано.
|
||||
Ми визначили функцію `filteredArray`, яка приймає вкладений масив `arr` та `elem` як аргументи і повертає новий масив. `elem` означає елемент, що може не бути присутнім в одному або більше масивах в межах `arr`. Змініть функцію, використовуючи цикл `for`, щоб повернути відфільтровану версію переданого масиву так, щоб було вилучено будь-який вкладений масив з `elem` в межах `arr`.
|
||||
|
||||
# --hints--
|
||||
|
||||
@@ -101,7 +101,7 @@ assert.deepEqual(
|
||||
);
|
||||
```
|
||||
|
||||
Функція `filteredArray` повинна використовуватися у циклі `for`
|
||||
Функція `filteredArray` має використовувати цикл `for`
|
||||
|
||||
```js
|
||||
assert.notStrictEqual(filteredArray.toString().search(/for/), -1);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
id: 587d7b7d367417b2b2512b1d
|
||||
title: Ітерація через ключі об'єкта у циклі "for...in"
|
||||
title: Ітерація через ключі об’єкта за допомогою інструкції for...in
|
||||
challengeType: 1
|
||||
forumTopicId: 301162
|
||||
dashedName: iterate-through-the-keys-of-an-object-with-a-for---in-statement
|
||||
@@ -8,7 +8,7 @@ dashedName: iterate-through-the-keys-of-an-object-with-a-for---in-statement
|
||||
|
||||
# --description--
|
||||
|
||||
Sometimes you need to iterate through all the keys within an object. You can use a <dfn>for...in</dfn> loop to do this. The for...in loop looks like:
|
||||
Часом потрібно ітерувати через всі ключі всередині об’єкта. Для цього можна використати цикл <dfn>for...in</dfn>. Цикл for...in виглядає так:
|
||||
|
||||
```javascript
|
||||
const refrigerator = {
|
||||
@@ -21,15 +21,15 @@ for (const food in refrigerator) {
|
||||
}
|
||||
```
|
||||
|
||||
This code logs `milk 1` and `eggs 12`, with each key-value pair on its own line.
|
||||
Цей код виводить `milk 1` та `eggs 12`, а кожна пара ключ-значення з’являється в окремому рядку.
|
||||
|
||||
We defined the variable `food` in the loop head and this variable was set to each of the object's keys on each iteration, resulting in each food's name being printed to the console.
|
||||
Ми визначили змінну `food` у голові циклу, і ця змінна встановлювалася на кожний з ключів об’єкта за кожної ітерації. У результаті цього кожна назва їжі виводилась на консолі.
|
||||
|
||||
**ПРИМІТКА:** об'єкти не зберігають впорядкування ключів так, як це роблять масиви. Таким чином, позиція ключа в об'єкті або відносний його порядок є недоречним, коли ми його відсилаємо або отримуємо до нього доступ.
|
||||
**ПРИМІТКА:** об’єкти не зберігають впорядкування ключів так, як це роблять масиви. Тому позиція ключа в об’єкті або його відносний порядок є недоречними, якщо ми посилаємось або отримуємо до нього доступ.
|
||||
|
||||
# --instructions--
|
||||
|
||||
We've defined a function `countOnline` which accepts one argument, `allUsers`. Use a <dfn>for...in</dfn> statement inside this function to loop through the `allUsers` object and return the number of users whose `online` property is set to `true`. An example of an object which could be passed to `countOnline` is shown below. Each user will have an `online` property set to either `true` or `false`.
|
||||
Ми визначили функцію `countOnline`, яка приймає один аргумент `allUsers`. Використайте інструкцію <dfn>for...in</dfn> всередині цієї функції, щоб пройтися по об’єкту `allUsers` і повернути кількість користувачів, чия властивість `online` встановлена на `true`. Приклад об’єкту, який можна передати до `countOnline`, показано нижче. Кожен користувач матиме властивість `online` встановлену на `true` або `false`.
|
||||
|
||||
```js
|
||||
{
|
||||
@@ -47,7 +47,7 @@ We've defined a function `countOnline` which accepts one argument, `allUsers`. U
|
||||
|
||||
# --hints--
|
||||
|
||||
Для функції `countOnline` слід використовувати `for in` цикл, щоб ітерувати ключі об'єкта, який передається до неї.
|
||||
Функція `countOnline` має використати інструкцію `for in`, щоб ітерувати через ключі об’єкта, переданого до неї.
|
||||
|
||||
```js
|
||||
assert(
|
||||
@@ -57,19 +57,19 @@ assert(
|
||||
);
|
||||
```
|
||||
|
||||
Функція `countOnline` повинна повернути `1`, коли об'єкт `{ Alan: { online: false }, Jeff: { online: true }, Sarah: { online: false } }` передається до неї
|
||||
Функція `countOnline` має повернути `1`, коли до неї передано об’єкт `{ Alan: { online: false }, Jeff: { online: true }, Sarah: { online: false } }`
|
||||
|
||||
```js
|
||||
assert(countOnline(usersObj1) === 1);
|
||||
```
|
||||
|
||||
Функція `countOnline` повинна повернути `2`, коли об'єкт `{ Alan: { online: true }, Jeff: { online: false }, Sarah: { online: true } }` передається до неї
|
||||
Функція `countOnline` має повернути `2`, коли до неї передано об’єкт `{ Alan: { online: true }, Jeff: { online: false }, Sarah: { online: true } }`
|
||||
|
||||
```js
|
||||
assert(countOnline(usersObj2) === 2);
|
||||
```
|
||||
|
||||
Функція `countOnline` повинна повернути `0`, коли об'єкт `{ Alan: { online: false }, Jeff: { online: false }, Sarah: { online: false } }` передається до неї
|
||||
Функція `countOnline` має повернути `0`, коли до неї передано об’єкт `{ Alan: { online: false }, Jeff: { online: false }, Sarah: { online: false } }`
|
||||
|
||||
```js
|
||||
assert(countOnline(usersObj3) === 0);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
id: 587d7b7d367417b2b2512b1f
|
||||
title: Змінити масив, збережений в об'єкті
|
||||
title: Зміна масиву, збереженого в об’єкті
|
||||
challengeType: 1
|
||||
forumTopicId: 301163
|
||||
dashedName: modify-an-array-stored-in-an-object
|
||||
@@ -8,21 +8,21 @@ dashedName: modify-an-array-stored-in-an-object
|
||||
|
||||
# --description--
|
||||
|
||||
Тепер вам відомо про всі основні операції стосовно об'єктів JavaScript. Ви можете додавати, змінювати та видаляти пари ключів і значень, перевіряти, чи існують ключі, і ітерувати усі ключі в об'єкті. Продовжуючи вивчення JavaScript ви познайомитесь з ще більш універсальними програми об'єктів. Крім того, уроки про структури даних, що належать до розділу «Coding Interview Prep» навчальної програми, також містять інформацію про ES6 <dfn>Map</dfn> та <dfn>Set</dfn> об'єкти, які є схожими на звичайні об'єкти, але забезпечують певні додаткові функції. Тепер, коли ви з'ясували, що таке масиви та об'єкти, ви цілком готові до вирішення складніших проблем з допомогою JavaScript!
|
||||
Тепер вам відомо про всі основні операції над об’єктами JavaScript. Ви можете додавати, змінювати і видаляти пари ключів-значень, перевіряти наявність ключів та ітерувати через усі ключі в об’єкті. Продовжуючи вивчення JavaScript, ви познайомитесь з універсальнішими застосуваннями об’єктів. Крім того, уроки зі структури даних, що належать до розділу навчальної програми «Підготовка до співбесіди з програмування», також містять інформацію про об’єкти <dfn>Map</dfn> та <dfn>Set</dfn> з ES6, які схожі на звичайні об’єкти, але забезпечують певні додаткові функції. Тепер, коли ви вивчили основи масивів та об’єктів, ви цілком готові до розв’язання складніших завдань у JavaScript!
|
||||
|
||||
# --instructions--
|
||||
|
||||
Зверніть увагу на об’єкт, який подано в редакторі коду. Об'єкт `user` містить три ключі. Ключ `data` містить п'ять ключів, один з яких містить масив `friends`. З цього можна зрозуміти, наскільки гнучкими є об'єкти як структури даних. Ми почали писати функцію `addFriend`. Завершіть її для того, щоб вона прийняла об'єкт `user` і додала назву аргументу `friend` до масиву, збереженого в `user.data.friends` і повернула цей масив.
|
||||
Зверніть увагу на об’єкт, який подано в редакторі коду. Об’єкт `user` містить три ключі. Ключ `data` містить п’ять ключів, один з яких містить масив `friends`. З цього можна зрозуміти, наскільки гнучкі об’єкти у ролі структури даних. Ми почали писати функцію `addFriend`. Завершіть її так, щоб вона прийняла об’єкт `user` і додала назву аргументу `friend` до масиву, збереженого в `user.data.friends` і повернула цей масив.
|
||||
|
||||
# --hints--
|
||||
|
||||
Об'єкт `user` повинен мати наступні ключі: `name`, `age` та `data`.
|
||||
Об’єкт `user` повинен мати ключі `name`, `age` та `data`.
|
||||
|
||||
```js
|
||||
assert('name' in user && 'age' in user && 'data' in user);
|
||||
```
|
||||
|
||||
Функція `addFriend` повинна прийняти об’єкт `user` і рядок `friend` у ролі аргументів, а також додати ще один до масиву `friends` в об'єкті `user`.
|
||||
Функція `addFriend` повинна прийняти об’єкт `user` і рядок `friend` у ролі аргументів, а також додати друга до масиву `friends` в об’єкті `user`.
|
||||
|
||||
```js
|
||||
assert(
|
||||
@@ -35,7 +35,7 @@ assert(
|
||||
);
|
||||
```
|
||||
|
||||
`addFriend(user, "Pete")` повинен повернути `["Sam", "Kira", "Tomo", "Pete"]`.
|
||||
`addFriend(user, "Pete")` має повернути `["Sam", "Kira", "Tomo", "Pete"]`.
|
||||
|
||||
```js
|
||||
assert.deepEqual(
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
id: 587d7b7c367417b2b2512b19
|
||||
title: Змінити об'єкт, вкладений в інший об'єкт
|
||||
title: Зміна об’єкта, вкладеного в об’єкті
|
||||
challengeType: 1
|
||||
forumTopicId: 301164
|
||||
dashedName: modify-an-object-nested-within-an-object
|
||||
@@ -8,7 +8,7 @@ dashedName: modify-an-object-nested-within-an-object
|
||||
|
||||
# --description--
|
||||
|
||||
Тепер давайте розглянемо дещо складніший об'єкт. Властивості об'єкта можуть бути вкладені на довільну глибину, а їхні значення можуть бути будь-яким видом даних, що підтримується JavaScript, включно з масивами й навіть іншими об'єктами. Зверніть увагу:
|
||||
Тепер розглянемо дещо складніший об’єкт. Властивості об’єкта можуть бути вкладені на довільну глибину, а їхні значення можуть бути будь-яким видом даних, що підтримується JavaScript, включно з масивами та навіть іншими об’єктами. Розглянемо приклад:
|
||||
|
||||
```js
|
||||
let nestedObject = {
|
||||
@@ -26,7 +26,7 @@ let nestedObject = {
|
||||
};
|
||||
```
|
||||
|
||||
`nestedObject` має три властивості: `id` (значення — це число), `date` (значення — це рядок), а `data` (значення — це об'єкт з його вкладеною структурою). Хоча структури можуть швидко ускладнюватися, все одно можна використовувати ті самі позначення, щоб отримати доступ до необхідної інформації. Щоб закріпити значення `10` до властивості `busy`, вкладеної в об'єкт `onlineStatus`, використовується точкова нотація, щоб посилатись на властивість:
|
||||
`nestedObject` має три властивості: `id` (значенням є число), `date` (значенням є рядок) та `data` (значенням є об’єкт з вкладеною структурою). Хоча структури можуть швидко ускладнюватися, все одно можна використовувати ті самі нотації, щоб отримати доступ до необхідної інформації. Щоб призначити значення `10` до властивості `busy`, вкладеної в об’єкт `onlineStatus`, використовується точкова нотація, щоб посилатись на властивість:
|
||||
|
||||
```js
|
||||
nestedObject.data.onlineStatus.busy = 10;
|
||||
@@ -34,11 +34,11 @@ nestedObject.data.onlineStatus.busy = 10;
|
||||
|
||||
# --instructions--
|
||||
|
||||
Тут ми окреслили об'єкт `userActivity`, який включає в себе інший вкладений об'єкт. Встановіть значення ключа `online` до `45`.
|
||||
Ми визначили об’єкт `userActivity`, який містить інший вкладений об’єкт. Встановіть значення ключа `online` на `45`.
|
||||
|
||||
# --hints--
|
||||
|
||||
`userActivity` повинен мати такі властивості: `id`,`date` і`data`.
|
||||
`userActivity` повинен мати властивості `id`, `date` та `data`.
|
||||
|
||||
```js
|
||||
assert(
|
||||
@@ -46,19 +46,19 @@ assert(
|
||||
);
|
||||
```
|
||||
|
||||
`userActivity` має мати `data` ключ, встановлений в об'єкті з `totalUsers` і `online` ключами.
|
||||
`userActivity` повинен мати ключ `data`, налаштований на об’єкт з ключами `totalUsers` та `online`.
|
||||
|
||||
```js
|
||||
assert('totalUsers' in userActivity.data && 'online' in userActivity.data);
|
||||
```
|
||||
|
||||
Властивість `online`, вкладена в `data` ключі `userActivity` повинен бути встановлений до `45`
|
||||
Властивість `online`, вкладена в ключі `data` об’єкта `userActivity`, повинна мати значення `45`
|
||||
|
||||
```js
|
||||
assert(userActivity.data.online === 45);
|
||||
```
|
||||
|
||||
Властивість `online` повинна бути встановлена за допомогою точкової нотації або квадратних дужок.
|
||||
Налаштуйте властивість `online` за допомогою точкової або дужкової нотації.
|
||||
|
||||
```js
|
||||
assert.strictEqual(code.search(/online: 45/), -1);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
id: 587d78b2367417b2b2512b0f
|
||||
title: Видалити елементи з масиву за допомогою функцій pop() і shift()
|
||||
title: Видалення елементів з масиву за допомогою pop() та shift()
|
||||
challengeType: 1
|
||||
forumTopicId: 301165
|
||||
dashedName: remove-items-from-an-array-with-pop-and-shift
|
||||
@@ -8,9 +8,9 @@ dashedName: remove-items-from-an-array-with-pop-and-shift
|
||||
|
||||
# --description--
|
||||
|
||||
Обидві функції `push()` і `unshift()` використовують відповідні методи, які за функціями майже протилежні: `pop()` та `shift()`. Як ви вже, напевне, зрозуміли, `pop()` *видаляє* елемент з кінця масиву, а не додає його, тоді як `shift()` видаляє елемент з початку. Ключова різниця між `pop()` і `shift()` та їх "ріднею", тобто `push()` і `unshift()` полягає в тому, що жоден метод не приймає параметри, а тільки дозволяє масиву змінюватися за допомогою одного елемента одночасно.
|
||||
`push()` та `unshift()` мають відповідні методи, які за функціями майже протилежні: `pop()` та `shift()`. Напевно ви вже зрозуміли, що `pop()` *видаляє* елемент з кінця масиву, а не додає його, тоді як `shift()` видаляє елемент на початку. Ключова різниця між `pop()` й `shift()` та їхньою «сім’єю» (тобто `push()` й `unshift()`) полягає в тому, що жоден метод не приймає параметри, а тільки дозволяє масиву змінювати один елемент за раз.
|
||||
|
||||
Звернімо увагу:
|
||||
Розглянемо приклад:
|
||||
|
||||
```js
|
||||
let greetings = ['whats up?', 'hello', 'see ya!'];
|
||||
@@ -18,13 +18,13 @@ let greetings = ['whats up?', 'hello', 'see ya!'];
|
||||
greetings.pop();
|
||||
```
|
||||
|
||||
`greetings` отримала б значення `['whats up?', 'hello']`.
|
||||
`greetings` матиме значення `['whats up?', 'hello']`.
|
||||
|
||||
```js
|
||||
greetings.shift();
|
||||
```
|
||||
|
||||
`greetings` отримала б значення `['hello']`.
|
||||
`greetings` матиме значення `['hello']`.
|
||||
|
||||
Ми також можемо повернути значення видаленого елемента за допомогою будь-якого з цих методів:
|
||||
|
||||
@@ -32,11 +32,11 @@ greetings.shift();
|
||||
let popped = greetings.pop();
|
||||
```
|
||||
|
||||
`greetings` отримала б значення `[]`, а `popped` отримала б значення `hello`.
|
||||
`greetings` матиме значення `[]`, а `popped` матиме значення `hello`.
|
||||
|
||||
# --instructions--
|
||||
|
||||
Ми визначили функцію, `popShift`, яка приймає масив як аргумент і повертає новий масив. Змініть функцію, використовуючи `pop()` і `shift()`, щоб видалити перший та останній елементи масиву аргументів і призначити видалені елементи до їх відповідних змінних, щоб повернутий масив містив їхні значення.
|
||||
Ми визначили функцію `popShift`, яка приймає масив як аргумент і повертає новий масив. Змініть функцію, використовуючи `pop()` й `shift()`, щоб видалити перший та останній елементи масиву аргументів і призначити видалені елементи до відповідних змінних, щоб повернутий масив містив їхні значення.
|
||||
|
||||
# --hints--
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
id: 587d78b2367417b2b2512b10
|
||||
title: Видалити елементи за допомогою функції splice()
|
||||
title: Видалення елементів за допомогою splice()
|
||||
challengeType: 1
|
||||
forumTopicId: 301166
|
||||
dashedName: remove-items-using-splice
|
||||
@@ -10,7 +10,7 @@ dashedName: remove-items-using-splice
|
||||
|
||||
Що ж, ми дізналися, як видалити елементи з початку і кінця масиву, використовуючи `shift()` і `pop()`, але що робити, якщо ми хочемо прибрати елемент десь зі середини? Або видалити декілька елементів одразу? Якраз тут нам на допомогу може прийти `splice()`. `splice()` дозволяє нам зробити ось що: **видалити будь-яку кількість послідовних елементів** будь-де в масиві.
|
||||
|
||||
`splice()` може прийняти до трьох параметрів, але зараз ми зосередимося на перших двох. Перші два параметри `splice()` – це цілі числа, які позначають індекси або позиції елементів у масиві, яким викликається `splice()`. Пам'ятайте, якщо масиви є *zero-indexed*, ми б використовували `0`, щоб зазначити перший елемент масиву. Перший параметр функції `splice()` позначає індекс в масиві, з якого починають видаляти елементи, у той час як другий параметр зазначає кількість елементів, необхідних для видалення. Наприклад:
|
||||
`splice()` може прийняти до трьох параметрів, але зараз ми зосередимося на перших двох. Перші два параметри `splice()` — це цілі числа, які позначають індекси або позиції елементів у масиві, для якого викликається `splice()`. Пам’ятайте, що масиви мають *нульовий індекс*, тому ми б використовували `0`, щоб позначити перший елемент масиву. Перший параметр методу `splice()` позначає індекс в масиві, з якого починають видаляти елементи, а другий параметр позначає кількість елементів, які потрібно видалити. Наприклад:
|
||||
|
||||
```js
|
||||
let array = ['today', 'was', 'not', 'so', 'great'];
|
||||
@@ -18,9 +18,9 @@ let array = ['today', 'was', 'not', 'so', 'great'];
|
||||
array.splice(2, 2);
|
||||
```
|
||||
|
||||
Ось тут видаляємо 2 елементи, починаючи з третього елемента (за другим індексом). `array` отримала б значення `['today', 'was', 'great']`.
|
||||
Ось тут видаляємо 2 елементи, починаючи з третього елемента (за другим індексом). `array` матиме значення `['today', 'was', 'great']`.
|
||||
|
||||
`splice()` не лише змінює масив, на який вона викликається, але й повертає новий масив, що містить значення видалених елементів:
|
||||
`splice()` не лише змінює масив, для якого викликається, але й повертає новий масив, який містить значення видалених елементів:
|
||||
|
||||
```js
|
||||
let array = ['I', 'am', 'feeling', 'really', 'happy'];
|
||||
@@ -32,7 +32,7 @@ let newArray = array.splice(3, 2);
|
||||
|
||||
# --instructions--
|
||||
|
||||
Ми ініціалізували масив `arr`. Використовуйте `splice()`, щоб видалити елементи з `arr`, для того щоб він містив виключно елементи, які разом складають значення `10`.
|
||||
Ми ініціалізували масив `arr`. Використайте `splice()`, щоб видалити елементи з `arr`, щоб він містив елементи, сума значень яких становить `10`.
|
||||
|
||||
# --hints--
|
||||
|
||||
@@ -44,7 +44,7 @@ assert(
|
||||
);
|
||||
```
|
||||
|
||||
`arr` повинен містити лише елементи, які разом складають значення до `10`.
|
||||
`arr` має містити елементи, сума значень яких становить `10`.
|
||||
|
||||
```js
|
||||
assert.strictEqual(
|
||||
@@ -53,13 +53,13 @@ assert.strictEqual(
|
||||
);
|
||||
```
|
||||
|
||||
Ваш код повинен використовувати метод `splice()` у `arr`.
|
||||
Використайте метод `splice()` на `arr`.
|
||||
|
||||
```js
|
||||
assert(__helpers.removeWhiteSpace(code).match(/arr\.splice\(/));
|
||||
```
|
||||
|
||||
Функція splice може лише видаляти елементи з `arr`, а не додавати їх до `arr`.
|
||||
Метод splice має видалити елементи з `arr`, а не додавати додаткові елементи до `arr`.
|
||||
|
||||
```js
|
||||
assert(
|
||||
|
||||
@@ -8,16 +8,16 @@ dashedName: use-an-array-to-store-a-collection-of-data
|
||||
|
||||
# --description--
|
||||
|
||||
Нижче наведено приклад найпростішої реалізації структури масиву даних. Його називають <dfn>one-dimensional array</dfn>, що означає, що він має лише один рівень або що він не має жодних інших вкладених масивів. Зверніть увагу, що в ньому містяться <dfn>booleans</dfn>, <dfn>strings</dfn> і <dfn>numbers</dfn> серед інших дійсних типів даних JavaScript:
|
||||
Нижче наведено приклад найпростішої реалізації структури масиву даних. Це <dfn>одновимірний масив</dfn>, тобто він має лише один рівень або не містить жодних вкладених масивів. Зверніть увагу, що в ньому містяться <dfn>булеві значення</dfn>, <dfn>рядки</dfn> та <dfn>числа</dfn> серед інших дійсних типів даних JavaScript:
|
||||
|
||||
```js
|
||||
let simpleArray = ['one', 2, 'three', true, false, undefined, null];
|
||||
console.log(simpleArray.length);
|
||||
```
|
||||
|
||||
Виклик `console.log` відображає `7`.
|
||||
Виклик `console.log` виводить `7`.
|
||||
|
||||
Усі масиви мають властивість довжини, до якої, як згадується вище, дуже легко можна отримати доступ за допомогою синтаксису `Array.length`. Складнішу реалізацію масиву можна побачити нижче. Це відомий <dfn>multi-dimensional array</dfn>, або масив що містить інші масиви. Зверніть увагу, що цей масив також включає JavaScript <dfn>objects</dfn>, які ми ретельно вивчатимемо в наступному розділі, але поки вам потрібно знати тільки те, що масиви також здатні зберігати складні об'єкти.
|
||||
Усі масиви мають властивість довжини, до якої, як згадується вище, дуже легко можна отримати доступ за допомогою синтаксису `Array.length`. Складнішу реалізацію масиву можна побачити нижче. Це <dfn>багатовимірний масив</dfn>, тобто масив, який містить інші масиви. Зверніть увагу, що цей масив також містить <dfn>об’єкти</dfn>, які ми ретельно вивчатимемо в наступному розділі, але поки вам потрібно знати тільки те, що масиви також здатні зберігати складні об’єкти.
|
||||
|
||||
```js
|
||||
let complexArray = [
|
||||
@@ -46,35 +46,35 @@ let complexArray = [
|
||||
|
||||
# --instructions--
|
||||
|
||||
Ми визначили змінну з назвою `yourArray`. Виконайте інструкцію, призначаючи масив принаймні з 5 елементів у довжину до змінної `yourArray`. Ваш масив повинен містити щонайменше по-одному <dfn>string</dfn>, <dfn>number</dfn> і <dfn>boolean</dfn>.
|
||||
Ми визначили змінну під назвою `yourArray`. Закінчіть інструкцію, призначивши масив з принаймні п’яти елементів до змінної `yourArray`. Ваш масив повинен містити принаймні по одному <dfn>рядку</dfn>, <dfn>числу</dfn> і <dfn>булевому значенню</dfn>.
|
||||
|
||||
# --hints--
|
||||
|
||||
`yourArray` повинна бути масивом.
|
||||
`yourArray` має бути масивом.
|
||||
|
||||
```js
|
||||
assert.strictEqual(Array.isArray(yourArray), true);
|
||||
```
|
||||
|
||||
`yourArray` повинна складати щонайменше з 5 елементів в довжину.
|
||||
`yourArray` має містити принаймні п’ять елементів у довжину.
|
||||
|
||||
```js
|
||||
assert.isAtLeast(yourArray.length, 5);
|
||||
```
|
||||
|
||||
`yourArray` повинна містити щонайменше одне `boolean`.
|
||||
`yourArray` має містити принаймні одне `boolean`.
|
||||
|
||||
```js
|
||||
assert(yourArray.filter((el) => typeof el === 'boolean').length >= 1);
|
||||
```
|
||||
|
||||
`yourArray` повинна містити щонайменше одне `number`.
|
||||
`yourArray` має містити принаймні одне `number`.
|
||||
|
||||
```js
|
||||
assert(yourArray.filter((el) => typeof el === 'number').length >= 1);
|
||||
```
|
||||
|
||||
`yourArray` повинна містити щонайменше один `string`.
|
||||
`yourArray` має містити принаймні одне `string`.
|
||||
|
||||
```js
|
||||
assert(yourArray.filter((el) => typeof el === 'string').length >= 1);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
id: 587d7b7c367417b2b2512b1b
|
||||
title: Використати ключове слово delete для видалення властивостей об'єкта
|
||||
title: Ключове слово delete для видалення властивостей об’єкта
|
||||
challengeType: 1
|
||||
forumTopicId: 301168
|
||||
dashedName: use-the-delete-keyword-to-remove-object-properties
|
||||
@@ -8,11 +8,11 @@ dashedName: use-the-delete-keyword-to-remove-object-properties
|
||||
|
||||
# --description--
|
||||
|
||||
Тепер вам відомо, що таке об'єкти, а також їхні основні функції і переваги. Коротше кажучи, вони — бази даних "ключ-значення", які забезпечують гнучкий та інтуїтивно зрозумілий спосіб структурування даних, ***і***, вони сприяють зменшенню часу пошуку. У решті цих завдань ми опишемо кілька типових операцій, які ви можете здійснити стосовно об'єктів, щоб вам було зручно застосовувати такі корисні структури даних у ваших програмах.
|
||||
Тепер ви знаєте, що таке об’єкти, а також їхні основні функції і переваги. Одним словом, це бази ключів і значень, які забезпечують гнучкий та зрозумілий спосіб структурування даних ***та*** сприяють зменшенню часу на пошук. У решті завдань ми опишемо кілька типових операцій, які ви можете здійснити на об’єктах, щоб вам було зручно застосовувати такі корисні структури даних у програмах.
|
||||
|
||||
У попередніх завданнях ми як додавали пари "ключ-значення" в об'єкт, так і змінювали їх. Таким чином, ми зрозуміємо, як ми можемо *видалити* пару "ключ-значення" з об'єкта.
|
||||
У попередніх завданнях ми додавали пари ключ-значення до об’єкта та змінювали їх. Тепер ми розглянемо, як *видалити* пару ключ-значення з об’єкта.
|
||||
|
||||
Повернімося до нашого прикладу об'єкту `foods` востаннє. Якщо ми хочемо видалити ключ `apples`, ми можемо зробити це за допомогою ключового слова `delete` наступним чином:
|
||||
Повернемося до нашого об’єкта `foods` востаннє. Якщо ми хочемо видалити ключ `apples`, ми можемо зробити це за допомогою ключового слова `delete`:
|
||||
|
||||
```js
|
||||
delete foods.apples;
|
||||
@@ -20,11 +20,11 @@ delete foods.apples;
|
||||
|
||||
# --instructions--
|
||||
|
||||
Використайте це ключове слово для видалення `oranges`, `plums` і `strawberries` ключів з об'єкту `foods`.
|
||||
Використайте ключове слово delete, щоб видалити ключі `oranges`, `plums` та `strawberries` з об’єкта `foods`.
|
||||
|
||||
# --hints--
|
||||
|
||||
Об'єкт `foods` має включати тільки три ключі: `apples`, `grapes` і `bananas`.
|
||||
Об’єкт `foods` повинен мати три ключі: `apples`, `grapes` та `bananas`.
|
||||
|
||||
```js
|
||||
assert(
|
||||
@@ -35,7 +35,7 @@ assert(
|
||||
);
|
||||
```
|
||||
|
||||
Ключі `oranges`, `plums` і `strawberries` необхідно видалити, використовуючи `delete`.
|
||||
Ключі `oranges`, `plums` та `strawberries` потрібно видалити, використавши `delete`.
|
||||
|
||||
```js
|
||||
assert(
|
||||
|
||||
Reference in New Issue
Block a user