首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有没有办法在一行中有条件地添加到数组中?

有没有办法在一行中有条件地添加到数组中?
EN

Stack Overflow用户
提问于 2011-05-20 06:16:46
回答 12查看 8.5K关注 0票数 12

我有str1和str2。str1可能是空字符串,也可能不是,我想构造一个数组,如下所示:

代码语言:javascript
运行
复制
str1 = ""
str2 = "bar"
["bar"]

代码语言:javascript
运行
复制
str1 = "foo"
str2 = "bar"
["foo", "bar"]

我现在只能想出两行代码来做这件事,但我知道肯定有一种方法。

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2011-05-20 06:22:37

代码语言:javascript
运行
复制
[str1, str2].reject {|x| x==''}
票数 17
EN

Stack Overflow用户

发布于 2011-05-20 06:31:56

在ruby 1.9中

代码语言:javascript
运行
复制
[*(str1 unless str1.empty?), str2]

ruby 1.8

代码语言:javascript
运行
复制
[(str1 unless str1.empty?), str2].compact
票数 24
EN

Stack Overflow用户

发布于 2016-04-18 02:49:41

Object#tap

代码语言:javascript
运行
复制
[:starting_element].tap do |a|
  a << true if true
  a << false if false
  a << :for_sure
end
# => [:starting_element, true, :for_sure]

所以在一行代码中

代码语言:javascript
运行
复制
[].tap { |a| [foo, bar].each { |thing| a << thing unless thing.blank? } }
[bar].tap { |a| a << bar unless foo.blank? }
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6065450

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档