arrays - 根据条件使用可选元素初始化数组
问题描述
当你想用 ruby/rails 中的可选元素初始化一个数组时,常用的方法是什么?
现在我做
array = []
array << "1st element"
array << "2nd element" if flag?
array << "3rd element"
但感觉非常冗长,我猜它可能比完全初始化时慢
我想知道是否有类似的东西,
array = [
"1st element",
"2nd element" if flag?,
"3rd element",
]
#=> ["1st element", "3rd element"]
解决方案
我不确定这是否是一种好方法,但这是我的建议:
array = [
"1st element",
flag? ? "2nd element" : nil,
"3rd element"
].compact
.compact
nil
将从您的数组中删除所有值。如果您可能有 nil 值,这将是有问题的。
推荐阅读
- java - 如何使用 Lambda 参数为 ArrayList 实现 toArray() 方法?
- reactjs - npm 错误!ERESOLVE 无法解析 React Native 中的依赖树
- kotlin - 编写此代码的最佳方法,希望减少 if else 的数量
- python - 具有 gpu_shared4 扩展的 GL 版本 2.1 在 Ubuntu 18.04.5 LTS 上不支持作为来宾 VM
- r - 在 rowSums 中使用点 (.)
- flutter - 如何从右到左滚动 singlechildscrollview 水平轴
- vue.js - 在 vue.js 中验证当前日期时间之后的日期
- url - TYPO3 中带有 config.yaml 的多语言环境中的路由
- reactjs - 覆盖新路线时,React Native先前的路线会改变位置
- javascript - 如何在svelte中将参数传递给模态