表达“某事”? "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:对于输入字符串:“某事”

在链接列表中head = something之间的区别是什么?和head.next =某事; [关闭]

Q_ASSERT 发布构建语义

“某事”的多重定义

Swift - 到达另一个程序做某事