Как убрать пустой хеш из массива - PullRequest
1 голос
/ 19 сентября 2019

Как я могу удалить пустые хэши из массива?

[{}, {}, :one, :two]

.compact не работает.

Ответы [ 3 ]

5 голосов
/ 19 сентября 2019

Как я могу удалить пустые хэши из массива?

Используя reject, отклонить элементы в перечислимом, проверив, является ли элемент Hash и пустым ({}):

p [{}, {}, :one, :two, [], [], '', nil].reject { |e| e == {} }
# [:one, :two, [], [], "", nil]
3 голосов
/ 20 сентября 2019

Удалить пустые хэши:

ar = [{}, {}, :one, :two]
ar.delete({})
p ar # => [:one, :two]
1 голос
/ 19 сентября 2019

Попробуйте Массив # отклонить нежелательные элементы:

ary = [{}, {}, :one, :two]
ary.reject! { |h| h.empty? }
ary
#=> [:one, :two]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...