Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有一种方法可以通过Javascript解构来压缩多个条件语句?_Javascript_Reactjs_Ecmascript 6_Conditional Statements - Fatal编程技术网

有没有一种方法可以通过Javascript解构来压缩多个条件语句?

有没有一种方法可以通过Javascript解构来压缩多个条件语句?,javascript,reactjs,ecmascript-6,conditional-statements,Javascript,Reactjs,Ecmascript 6,Conditional Statements,我正在构建一个简单的React应用程序,让用户提供三种类型的反馈(好、中性和坏)。如果还不存在任何类型的反馈,它将呈现“no feedback given”消息,并且一旦给出任何类型的反馈,它将显示该反馈的统计信息 我已经用下面所示的现有条件实现了这一点,但我想知道是否可以压缩三个“或”语句,也许可以通过一种解构技术 为清晰起见进行编辑:反馈值的数据存储在父组件中的三个独立状态中 return ( <> <h1>Statistics</h1>

我正在构建一个简单的React应用程序,让用户提供三种类型的反馈(好、中性和坏)。如果还不存在任何类型的反馈,它将呈现“no feedback given”消息,并且一旦给出任何类型的反馈,它将显示该反馈的统计信息

我已经用下面所示的现有条件实现了这一点,但我想知道是否可以压缩三个“或”语句,也许可以通过一种解构技术

为清晰起见进行编辑:反馈值的数据存储在父组件中的三个独立状态中

return (
    <>
      <h1>Statistics</h1>

      {(good > 0 || (neutral > 0) || bad > 0)? 
        <p>{feedback}</p> :
        <p>No feedback given</p>}
    </>
  );
返回(
统计
{(好>0 | | |(中性>0)| |坏>0)?
{反馈}

: 没有给出反馈

} );
如果用户有反馈,为什么不做一个简单的字符串比较呢?如果用户没有反馈,为什么不将反馈设置为无反馈呢

return (
    <>
      <h1>Statistics</h1>
      {feedback != "NO_FEEDBACK"
        ?<p>{feedback}</p>
        :<p>No feedback given</p>}
    </>
  );
返回(
统计
{反馈!=“没有反馈”
?{feedback}

:没有给出反馈 );
我已经用下面显示的现有条件实现了这一点,但我想知道是否可以压缩三个“or”语句

不,不是真的。它们只有三个,而且你没有它们的列表,所以没有什么可以获得的。您当前的代码已经相当简洁-您所能做的就是省略多余的括号:

<>
  <h1>Statistics</h1>

  { good > 0 || neutral > 0 || bad > 0 ? 
    <p>{feedback}</p> :
    <p>No feedback given</p>}
</>

如果我理解你的问题,你可以将它们添加到一个数组中,并使用
.any
检查它们中是否有
>0
例如
[好的,中性的,坏的]。any(feedback=>feedback>0)
应该返回
true
false
你提到的解构;您有具有这些属性的对象吗?如果是这样的话,把它添加到问题中,这与你的数据有很大关系。存储在何处以及如何存储?您能否以不同的方式存储它,以便能够更有效地执行类似的操作?基于你所分享的,我真的很喜欢你所拥有的。我非常喜欢人性化的代码,而你的代码读起来非常有趣nicely@George,也许你的意思是
Array.prototype.some()
()?如果你真的想要,你可以在不创建不必要的数组或对象的情况下缩短它:
{((好的| | |中性的| | | |坏的)&{feedback}

)|没有反馈

<>
  <h1>Statistics</h1>

  { good || neutral || bad ? 
    <p>{feedback}</p> :
    <p>No feedback given</p>}
</>