表达“某事”? "Something" : "Something else" 更短? [复制]
Posted
技术标签:
【中文标题】表达“某事”? "Something" : "Something else" 更短? [复制]【英文标题】:Expression "Something" ? "Something" : "Something else" shorter? [duplicate] 【发布时间】:2019-09-09 20:40:14 【问题描述】:快速提问。我可以写得更短吗?
实际上,我希望有相同的变量,我可以取值:
this.state.members[activeMemberId] ? this.state.members[activeMemberId].id : null
例如
this.state.members[activeMemberId] ? (<-the same).id : null
【问题讨论】:
id
是什么?
是...表达式 && 表达式而不是表达式?表达式:空
【参考方案1】:
注意不要在尝试访问undefined
的id属性时遇到未定义的引用异常
function getMemberId(activeMemberId)
this.state = members:
id1: id: 1
;
const members: [activeMemberId]: id = null = = = this.state;
return id;
console.log(getMemberId('id1'));
console.log(getMemberId('id2'));
// Or you could chain the && operator and || operator
function getMemberIdAlt(activeMemberId)
this.state = members:
id1: id: 1
;
return (
this.state
&& this.state.members
&& this.state.members[activeMemberId]
&& this.state.members[activeMemberId].id
) || null;
console.log(getMemberIdAlt('id1'));
console.log(getMemberIdAlt('id2'));
【讨论】:
【参考方案2】:您可以使用||
this.state.members[activeMemberId].id || null
【讨论】:
【参考方案3】:你可以使用逻辑或
this.state.members[activeMemberId].id || null
这是如何工作的?
x || y
|
|________________ If `x` is true return `x` else return `y`
拇指规则:- 逻辑或返回第一个真值,如果有其他值则返回最后一个值
【讨论】:
【参考方案4】:你可以这样做:
this.state.members[activeMemberId].id || null
【讨论】:
以上是关于表达“某事”? "Something" : "Something else" 更短? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
java.lang.NumberFormatException:对于输入字符串:“某事”