Javascript 三元运算符if-else if问题

Javascript 三元运算符if-else if问题,javascript,reactjs,if-statement,Javascript,Reactjs,If Statement,我已经盯着这个看了好几天了,从我发现的每一件事来看,它应该是有效的,但最终总是失败的。我正在检查价格变化,可以是正的,也可以是负的,因此>0三元语句本身似乎没有任何问题,因此,如果条件持续失败,则假设数字大于或小于零;确保CheeseBarrelChange的parseInt结果不是NaN 函数更改输入{ const c=parseIntinput.value; 常数i=c>0“向上”:c

我已经盯着这个看了好几天了,从我发现的每一件事来看,它应该是有效的,但最终总是失败的。我正在检查价格变化,可以是正的,也可以是负的,因此>0三元语句本身似乎没有任何问题,因此,如果条件持续失败,则假设数字大于或小于零;确保CheeseBarrelChange的parseInt结果不是NaN

函数更改输入{ const c=parseIntinput.value; 常数i=c>0“向上”:c<0“向下”:; log{change:c,icon:i}; }
检查是不是NaN让我思考了一下,问题是ParseInt,切换到parseFloat,现在可以工作了。

这不是你问题的答案,但这是一些粗糙的代码,这就是为什么你在现实世界中很少看到三元运算符,尤其是双嵌套的。我认为至少应该将其拆分为多行,错误应该很明显。运算符看起来不错,唯一的条件是item.CheeseBarrelChange为0,或者不是数字字符串,在这种情况下,parseInt生成值NaN,比较总是会回来的false@SrdjanGrubor它在一个return语句中,所以不能执行普通的if语句。@Jeffha77通常,您会在return语句之前对其求值,这样在这里的代码中,您只会说一些类似于{someObject}的内容,这些内容要么是nothing,要么是tag。
 {parseInt(item.CheeseBarrelChange) > 0 ? <i className={styles.up}></i> :
 parseInt(item.CheeseBarrelChange) < 0 ? <i className={styles.down}></i>  :''}