From 21220f409720ef3f895a7178ac0a178c1347c7ae Mon Sep 17 00:00:00 2001 From: OKitel Date: Tue, 4 Oct 2022 13:31:24 +0200 Subject: [PATCH] docs: add translation to Russian for js-basics arrays-loops lesson --- .../4-arrays-loops/translations/README.ru.md | 161 ++++++++++++++++++ 1 file changed, 161 insertions(+) create mode 100644 2-js-basics/4-arrays-loops/translations/README.ru.md diff --git a/2-js-basics/4-arrays-loops/translations/README.ru.md b/2-js-basics/4-arrays-loops/translations/README.ru.md new file mode 100644 index 00000000..f9fb31cb --- /dev/null +++ b/2-js-basics/4-arrays-loops/translations/README.ru.md @@ -0,0 +1,161 @@ +# Основы JavaScript: массивы и циклы + +![Основы JavaScript: массивы и циклы](../../../sketchnotes/webdev101-js-arrays.png) + +> Скетчноут [Tomomi Imura](https://twitter.com/girlie_mac) + +## Предлекционный квиз + +[Предлекционный квиз](https://ashy-river-0debb7803.1.azurestaticapps.net/quiz/13) + +Этот урок охватывает основы JavaScript, языка, обеспечивающего интерактивность в Интернете. В этом уроке вы узнаете о массивах и циклах, которые используются для управления данными. + +[![Массивы](https://img.youtube.com/vi/1U4qTyq02Xw/0.jpg)](https://youtube.com/watch?v=1U4qTyq02Xw "Arrays") + +[![Циклы](https://img.youtube.com/vi/Eeh7pxtTZ3k/0.jpg)](https://www.youtube.com/watch?v=Eeh7pxtTZ3k "Loops") + +> 🎥 Нажмите на изображения выше, чтобы просмотреть видео о массивах и циклах. + +> Вы можете пройти этот урок на [Microsoft Learn](https://docs.microsoft.com/learn/modules/web-development-101-arrays/?WT.mc_id=academic-13441-cxa)! + +## Массивы + +Работа с данными — обычная задача для любого языка, и она становится намного проще, когда данные организованы, например в массивы. В массивах данные хранятся в структуре, похожей на список. Одним из основных преимуществ массивов является то, что вы можете хранить различные типы данных в одном массиве. + +✅ Массивы вокруг нас! Можете ли вы привести реальный пример массива, например массива солнечных батарей? + +Синтаксис массива — пара квадратных скобок. + +```javascript +let myArray = []; +``` + +Это пустой массив, но массивы могут быть объявлены уже заполненными данными. Несколько значений в массиве разделяются запятой. + +```javascript +let iceCreamFlavors = [ + "Chocolate", + "Strawberry", + "Vanilla", + "Pistachio", + "Rocky Road", +]; +``` + +Каждому из значений массива присваивается свое уникальное значение, называемое **индексом**. Индекс — целое число, которое вычисляется на основе расстояния элемента массива от начала массива. В приведенном выше примере строка "Chocolate" имеет индекс 0, а индекс "Rocky Road" — 4. Используйте индекс с квадратными скобками для извлечения, изменения или вставки значений массива. + +✅ Вас не удивляет, что массивы начинаются с нулевого индекса? В некоторых языках программирования индексы начинаются с 1. С этим связана интересная история, которую вы можете [прочитать в Википедии](https://en.wikipedia.org/wiki/Zero-based_numbering). + +```javascript +let iceCreamFlavors = [ + "Chocolate", + "Strawberry", + "Vanilla", + "Pistachio", + "Rocky Road", +]; +iceCreamFlavors[2]; //"Vanilla" +``` + +Вы можете использовать индекс для изменения значения, например: + +```javascript +iceCreamFlavors[4] = "Butter Pecan"; //Изменяет "Rocky Road" на "Butter Pecan" +``` + +И вы можете вставить новое значение по заданному индексу следующим образом: + +```javascript +iceCreamFlavors[5] = "Cookie Dough"; //Добавили "Cookie Dough" +``` + +✅ Более распространенный способ поместить значения в массив — использовать методы массива, например array.push(). + +Чтобы узнать, сколько элементов содержится в массиве, используйте свойство `length`. + +```javascript +let iceCreamFlavors = [ + "Chocolate", + "Strawberry", + "Vanilla", + "Pistachio", + "Rocky Road", +]; +iceCreamFlavors.length; //5 +``` + +✅ Попробуйте самостоятельно! Используйте консоль вашего браузера для создания собственного массива и управления им. + +## Циклы + +Циклы позволяют выполнять повторяющиеся или **итеративные** задачи и могут сэкономить много времени и кода. Каждая итерация может различаться своими переменными, значениями и условиями. В JavaScript есть разные типы циклов, они имеют небольшие различия, но по сути делают одно и то же: перебирают данные. + +### Цикл for + +Цикл `for` требует 3 частей для итерации: + +- `счетчик` Переменная, которая обычно инициализируется числом, подсчитывающим количество итераций. +- `условие` Выражение, использующее операторы сравнения, для остановки цикла при `false` +- `итерация-выражение` Запускается в конце каждой итерации, обычно используется для изменения значения счетчика. + +```javascript +// Счет до 10 +for (let i = 0; i < 10; i++) { + console.log(i); +} +``` + +✅ Запустите этот код в консоли браузера. Что происходит, когда вы вносите небольшие изменения в счетчик, условие или выражение итерации? Можете ли вы заставить его работать в обратном направлении, создавая обратный отсчет? + +### Цикл while + +В отличие от синтаксиса цикла `for`, для циклов `while` требуется только условие, которое остановит цикл при значении `false`. Условия в циклах обычно зависят от других значений, таких как счетчики, и ими необходимо управлять во время цикла. Начальные значения для счетчиков должны создаваться вне цикла, а любые выражения, отвечающие условию, включая изменение счетчика, должны поддерживаться внутри цикла. + +```javascript +//Счет до 10 +let i = 0; +while (i < 10) { + console.log(i); + i++; +} +``` + +✅ Почему вы должны выбрать цикл for вместо цикла while? 17 тысяч людей задали один и тот же вопрос на StackOverflow, и некоторые мнения [могут быть вам интересны](https://stackoverflow.com/questions/39969145/while-loops-vs-for-loops-in-javascript). + +## Циклы и массивы + +Массивы часто используются с циклами, поскольку для остановки цикла в большинстве условий требуется длина массива, а индекс также может быть значением счетчика. + +```javascript +let iceCreamFlavors = [ + "Chocolate", + "Strawberry", + "Vanilla", + "Pistachio", + "Rocky Road", +]; + +for (let i = 0; i < iceCreamFlavors.length; i++) { + console.log(iceCreamFlavors[i]); +} //Заканчивается, когда все вкусы выведены +``` + +✅ Поэкспериментируйте с циклами для созданного вами массива в консоли браузера. + +--- + +## 🚀 Челлендж + +Существуют и другие способы обработки массивов, кроме циклов for и while. Есть [forEach](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach), [for-of](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/for...of), и [map](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/map). Перепишите свой цикл для массива, используя один из этих методов. + +## Постлекционный квиз + +[Постлекционный квиз](https://ashy-river-0debb7803.1.azurestaticapps.net/quiz/14) + +## Обзор и самообучение + +У массивов в JavaScript есть множество методов, чрезвычайно полезных для манипулирования данными. [Почитайте об этих методах](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array) и попробуйте некоторые из них (например, push, pop, slice и splice) на созданном вами массиве. + +## Задание + +[Пройдитесь циклом по массиву](assignment.ru.md)