Изменение массивов
Часть раздела Основы путешествия по Ruby на Coddy — урок 60 из 88.
Теперь, когда вы знаете, как обращаться к элементам массива, давайте узнаем, как их изменять. Вы можете изменить любой элемент, присвоив новое значение по его индексу:
fruits = ["apple", "banana", "cherry"]
fruits[1] = "mango"
puts fruits # Выводит: apple, mango, cherryЧтобы добавить элементы в массив, используйте метод push или оператор «лопата» <<. Оба способа добавляют элементы в конец:
colors = ["red", "blue"]
colors.push("green")
colors << "yellow"
puts colors # Выводит: red, blue, green, yellowДля удаления элементов Ruby предоставляет несколько вариантов. Метод pop удаляет и возвращает последний элемент, в то время как shift удаляет первый:
numbers = [1, 2, 3, 4]
numbers.pop # Удаляет 4
numbers.shift # Удаляет 1
puts numbers # Выводит: 2, 3Вы также можете удалить конкретное значение с помощью delete:
letters = ["a", "b", "c", "b"]
letters.delete("b")
puts letters # Выводит: a, cОбратите внимание, что delete удаляет все вхождения указанного значения из массива.
Задание
ЛегкоВам предоставлен следующий массив:
tasks = ["email", "meeting", "lunch", "report", "call"]Считайте три входных значения:
- Индекс (целое число) — позиция для изменения
- Новое значение (строка) — значение для замены в этой позиции
- Значение для удаления (строка) — элемент, который нужно удалить из массива
Выполните следующие операции по порядку:
- Замените элемент по заданному индексу новым значением
- Добавьте
"review"в конец массива, используяpush - Добавьте
"planning"в конец массива, используя оператор shovel<< - Удалите последний элемент, используя
pop - Удалите первый элемент, используя
shift - Удалите все вхождения указанного значения, используя
delete
Выведите финальный массив, используя puts.
Например, если входные данные — 2, break и call, результат должен быть:
meeting
break
report
reviewЕсли входные данные — 0, standup и report, результат должен быть:
meeting
lunch
call
reviewЕсли входные данные — 4, demo и lunch, результат должен быть:
meeting
report
demo
reviewШпаргалка
Чтобы изменить элемент массива, присвойте новое значение по его индексу:
fruits = ["apple", "banana", "cherry"]
fruits[1] = "mango"
puts fruits # Выводит: apple, mango, cherryЧтобы добавить элементы в конец массива, используйте push или оператор «лопата» (shovel operator) <<:
colors = ["red", "blue"]
colors.push("green")
colors << "yellow"
puts colors # Выводит: red, blue, green, yellowЧтобы удалить элементы из массива:
popудаляет и возвращает последний элементshiftудаляет и возвращает первый элементdeleteудаляет все вхождения определенного значения
numbers = [1, 2, 3, 4]
numbers.pop # Удаляет 4
numbers.shift # Удаляет 1
puts numbers # Выводит: 2, 3
letters = ["a", "b", "c", "b"]
letters.delete("b")
puts letters # Выводит: a, cПопробуйте сами
# Исходный массив
tasks = ["email", "meeting", "lunch", "report", "call"]
# Чтение входных данных
index = gets.chomp.to_i
new_value = gets.chomp
value_to_delete = gets.chomp
# TODO: Напишите свой код ниже
# 1. Замените элемент по заданному индексу новым значением
# 2. Добавьте "review" в конец, используя push
# 3. Добавьте "planning" в конец, используя оператор <<
# 4. Удалите последний элемент, используя pop
# 5. Удалите первый элемент, используя shift
# 6. Удалите все вхождения указанного значения, используя delete
# Вывод итогового массива
puts tasksВ этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 2
Логические операторы. Часть 1Логические операторы. Часть 2Повторение — простая логикаЛогические операторы. Часть 3Логические операторы. Часть 47Калькулятор разделения счета
Приветственное сообщениеПолучение пользовательского ввода13Продвинутая работа с массивами
Срезы массивов через диапазоныСрезы массивов через индексыОператоры массивовМетод include?2Переменные и типы данных
Числа и переменныеСтроковый тип данныхЛогический тип данныхТип данных SymbolПроверка типов данныхПравила именованияПовторение: создание переменных5Принятие решений
Оператор IfКонструкция If - ElseПовторение — Простой калькуляторВложенные конструкции If - ElseОператор Unless8Циклы
Цикл For с диапазонамиЦикл WhileОператор BreakОператор NextПовторение: ФакториалЦикл TimesЦикл UntilВложенные циклыПовторение: Динамический ввод3Операторы. Часть 1
Арифметические операторыОператор остатка от деленияСокращенная арифметикаИтоги: простая математикаОператоры сравнения6Основы ввода-вывода
Вывод с помощью putsВывод с помощью print и pВывод с переменнымиВвод с помощью getsМетод chompПреобразование типовИтоги — Калькулятор возрастаИтоги — Истина или ложь