【问题标题】:Convert an empty array to nil inplace将空数组就地转换为 nil
【发布时间】:2020-03-29 12:22:27
【问题描述】:

我有以下代码:

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']

【问题讨论】:

  • 你也可以使用类似:new_array = some_array.present? ? some_array : [..]

标签: ruby-on-rails ruby


【解决方案1】:

我无法使用搜索引擎找到答案,但 StackOverflow 给了我一个类似问题的答案,然后是关于字符串:

Converting an empty string to nil in place?

解决方法是使用presence

仅在 Rails 中可用。

【讨论】:

    【解决方案2】:

    你可以使用这样的东西

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

    这只是一个条件语句,它使用empty? 来检查some_array 是否包含任何元素,然后返回所需的输出

    【讨论】:

      猜你喜欢
      • 2013-03-03
      • 2022-01-11
      • 1970-01-01
      • 2013-01-16
      • 2018-06-20
      • 2020-03-22
      • 2011-05-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多