Last active
December 16, 2018 18:12
-
-
Save alexandersazonof/29eda5023417dd10582a8d5bc2e3617f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#Дан целочисленный массив. Преобразовать его, вставив перед каждым положительным элементом нулевой элемент | |
number_array = [1, -2, -1, 4] | |
sort_array = number_array.each_with_object([]) do |item , sort_array | | |
sort_array << 0 if item.positive? | |
sort_array << item | |
end | |
puts sort_array |
aya-soft
commented
Nov 27, 2018
•
- опять имя массива не отражает смысл: number
- Рубисты стремятся к лаконичности: sort_number = [] уже достаточно и понятно
- В простых выражениях принято не ставить скобки, если нет аргументов: Array.new
- Замени if на тернарный оператор
- Попробуй использовать each_with_object, чтобы избавиться от sort_number = Array.new()
- Придумай решение с методом flatten
- опять имя массива не отражает смысл: number
- Рубится стремятся к лаконичности: sort_number = [] уже достаточно и понятно
- В простых выражениях принято не ставить скобки, если нет аргументов: Array.new
- Замени if на тернарный оператор
- Попробуй использовать each_with_object, чтобы избавиться от sort_number = Array.new()
- Придумай решение с методом flatten
1 С именами я понял проблему
5 sort_array = digital_array.each_with_object([]) do |item , sort_array |
item>0 ? sort_array.push(0, item) : sort_array<<item
end
6 flatten преобразует многомерный массив в одномерный , я не понимаю как здесь можно это реализовать
- опять с проблемами у тебя беда, надо sort_array << item
- ну посмотри внимательно, ты из одного массива делаешь другой, добавляя то 2 элемента, то один
вот и подумай, причем тут flatten
- опять с проблемами у тебя беда, надо sort_array << item
- ну посмотри внимательно, ты из одного массива делаешь другой, добавляя то 2 элемента, то один
вот и подумай, причем тут flatten
вот такое решение :
number_array = [1, -2, -1, 4]
sort_array = number_array.each_with_object([]) do |item , sort_array |
if item.positive?
sort_array << 0
end
sort_array << item
end.flatten
puts sort_array
- можешь переписать это условие в виде модификатора?
if item.positive?
sort_array << 0
end - а зачем flatten тут? ты же добавляешь элементы по одному
- можешь переписать это условие в виде модификатора?
if item.positive?
sort_array << 0
end- а зачем flatten тут? ты же добавляешь элементы по одному
1 sort_array << 0 if item.positive?
2 убрал
ок, Придумай решение с методом flatten - еще не сделал
ок, Придумай решение с методом flatten - еще не сделал
number_array = [1, -2, -1, 4]
sort_array = number_array.collect { |item| item > 0 ? [0, item] : item }.flatten
puts sort_array
🥇
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment