ruby массив последовательно с номером - PullRequest
0 голосов
/ 13 января 2020

Крошечный альтернативный режим для создания последовательного массива, передавая одно значение в ruby?

Например:

number = 5
#output: [1,2,3,4,5]

Я знаю, что я мог бы использовать «каждый», проходя x позиций, сохраняя во вспомогательной переменной. Но я бы хотел что-то более практичное, и я знаю, что Ruby имеет большой потенциал для короткого кода.

Ответы [ 4 ]

2 голосов
/ 13 января 2020

Настолько простое решение:

(1..number).to_a
1 голос
/ 14 января 2020

вы можете попробовать ...

[*1..10]
# => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

или ...

num = 10
[*1..num]
# => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
0 голосов
/ 14 января 2020

Мое предпочтительное решение:

Array.new(5) { |i| i + 1 }  # => [1, 2, 3, 4, 5]

, потому что оно легко распространяется на произвольные последовательности, такие как:

Array.new(5) { |i| (i + 1)**2 }  # => [1, 4, 9, 16, 25]

Для этого существует блочная форма конструктора.

0 голосов
/ 14 января 2020

В то время как решение по дальности Дарлана - мой предпочтительный метод, вы также можете использовать перечислимое решение, например:

5.upto(10).to_a
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...