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

This commit is contained in:
camperbot
2023-07-14 20:10:03 +05:30
committed by GitHub
parent ae81cb8abe
commit b2a366a6a9
473 changed files with 742 additions and 742 deletions

View File

@@ -1,6 +1,6 @@
---
id: 5a661e0f1068aca922b3ef17
title: Доступ до вмісту масиву завдяки дужковій нотації
title: Доступ до вмісту масиву за допомогою дужкової нотації
challengeType: 1
forumTopicId: 301149
dashedName: access-an-arrays-contents-using-bracket-notation

View File

@@ -1,6 +1,6 @@
---
id: 587d7b7c367417b2b2512b1a
title: Доступ до назв властивостей завдяки дужковій нотації
title: Доступ до назв властивостей за допомогою дужкової нотації
challengeType: 1
forumTopicId: 301150
dashedName: access-property-names-with-bracket-notation

View File

@@ -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

View File

@@ -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` може бути будь-яка кількість елементів (розділених комами), кожен з яких вставляється.

View File

@@ -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(

View File

@@ -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);

View File

@@ -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), [

View File

@@ -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));

View File

@@ -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(

View File

@@ -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(

View File

@@ -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);

View File

@@ -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);

View File

@@ -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(

View File

@@ -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);

View File

@@ -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--

View File

@@ -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(

View File

@@ -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);

View File

@@ -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(