我喜欢Ruby中的条件赋值语法并且一直使用它:
x = this_var || that_var
现在我正在处理几个API,它们为不存在的值返回空字符串。由于在Ruby中空字符串的计算结果为true,因此我无法再使用上述语法来设置默认值。当我有几个"级别时,它会变得更糟糕。默认值,例如"如果此var不存在,则将其设置为该var,如果它也不存在,则将其设置为另一个var"。所以我最终这样做了:
x = if this_var.present?
this_var
elsif that_var.present?
that_var
else
last_resort
end
.present?
方法有帮助但不多。我怎么能以更简洁的方式写这样的东西?
我正在使用Rails 4,因此欢迎使用Rails方法作为答案:)
由于
答案 0 :(得分:10)
这是您使用present?
兄弟presence
的地方(假设您使用rails或至少是有效支持)。
x = this_var.presence || that_var.presence || last_resort
答案 1 :(得分:5)
{mapObject(this.state.guests, (key, value) => {
return <div key={key}>
{value.record
.filter(
(item,index) => {
return (
item.first_name.$t.toLowerCase().includes(this.state.search.toLowerCase())
//item.last_name.$t.toLowerCase().includes(this.state.search.toLowerCase())
//item.company.$t.toLowerCase().includes(this.state.search.toLowerCase())
)
}
)
.map((item,index) => {
return <div className="columns is-mobile" key={index}>
<div className="column" key={index}>{item.first_name.$t} {item.last_name.$t} <span class="is-hidden-tablet"><br />{item.company.$t}</span></div>
<div className="column is-hidden-mobile" >{item.company.$t}</div>
<div className="column is-hidden-mobile">
<EmailFormdisplay guestid={index} />
</div>
<div className="column is-hidden-mobile">
<PhoneFormdisplay guestid={index} />
</div>
<div className="column is-hidden-tablet is-one-third-mobile">
<Dropdown>
<DropdownTrigger></DropdownTrigger>
<DropdownContent>
<div className="columns">
<div className="column">
<EmailFormdisplay guestid={index} />
</div>
<div className="column">
<PhoneFormdisplay guestid={index} />
</div>
</div>
</DropdownContent>
</Dropdown>
</div>
</div>;
})}
</div>
})}