RoR / Ruby удаляют нулевые элементы из вложенного массива

На CPAN существует много модулей управления Датой. Мой конкретный фаворит DateTime, и можно использовать strptime модули для парсинга дат в произвольных форматах. Существуют также многие DateTime:: модули Формата на CPAN для обработки специализированных форматов даты, но strptime является самым универсальным.

14
задан Sam 11 August 2014 в 13:53
поделиться

4 ответа

В Ruby 1.8.7 и более поздних версиях вы можете сделать следующее:

a.each &:compact!
=> [[1, 2, 3], [4, 5]]

В Ruby 1.8.6 вы должны проделать долгий путь:

a.each {|s| s.compact!}

Оба они изменят содержимое a . Если вы хотите вернуть новый массив и оставить исходный в покое, вы можете использовать collect вместо каждый :

# 1.8.7+:
a.collect &:compact

# 1.8.6:
a.collect {|s| s.compact}
44
ответ дан 1 December 2019 в 06:12
поделиться

Если вы не хотите навсегда изменить a

a.map do |e|
  e.compact
end
3
ответ дан 1 December 2019 в 06:12
поделиться
a.each {|subarray| subarray.compact!}
a.compact!

Должно работать ... .

-3
ответ дан 1 December 2019 в 06:12
поделиться

Если бы вы были чтобы использовать in_groups_of , вы можете передать его false в качестве второго аргумента, и он не заполнит «пробелы» nil , но на самом деле ничего.

8
ответ дан 1 December 2019 в 06:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: