Преобразовать пустой массив в ноль на месте - PullRequest
0 голосов
/ 26 марта 2020

У меня есть следующий код:

some_array = [] # Sometimes is filled, in this case it isn't
new_array = some_array || ['default', 'array', 'values']

Теперь || не запускается, потому что [] != nil

Конечно, это можно решить, выполнив:

new_array = some_array
new_array = ['default', 'array', 'values'] if new_array.blank?

Но я помню, что есть функция, которая делает это в одной строке, например:

[].filled_arr_or_nil # nil
['something'].filled_arr_or_nil # ['something']

Ответы [ 2 ]

1 голос
/ 26 марта 2020

Я не смог найти ответ с помощью поисковой системы, но StackOverflow дал мне ответ с похожим вопросом, но затем о строках:

Преобразование пустой строки в ноль на месте ?

Решение заключается в использовании presence

Доступно только в Rails.

0 голосов
/ 29 марта 2020

Вы можете использовать что-то вроде этого

some_array = []
new_array = some_array.empty? ? ['default', 'array', 'values'] : some_array

Это просто условный оператор, который использует empty?, чтобы проверить, содержит ли some_array какие-либо элементы, и затем возвращает желаемый результат

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