嵌套三元运算符

时间:2020-09-22 13:44:14

标签: javascript nested conditional-operator

嵌套三元存在一些问题:

我有代码:

var genericName = Beauty;

setTitle = (!empty(shopOnline) ? shopOnline + ' | ' : '') 
    + (!empty(productName) ? productName + ' | ' : '') 
    + genericName;

我想要这样的场景:

  1. 如果genericName不为空-在线购物产品名称通用名称
  2. 如果genericName为空,请在线购买产品名称

当前,我正在获取代码的输出(如果genericName为空)-在线购物|产品名称|

如果在产品名称后genericName为空,我们如何添加嵌套三元运算符以删除“ |” ((!empty(productName)?productName +'|':''))

1 个答案:

答案 0 :(得分:1)

使用filter()join()

[shopOnline, productName, genericName].filter(Boolean).join(' | ')

这里Boolean function作为回调提供,以过滤出像 0, -0, null, false, NaN, undefined, ''

您还可以将empty()用作过滤器的回调

[shopOnline, productName, genericName].filter(i => !empty(i)).join(' | ')
相关问题