如何在具有多个变量的模板文字中使用三元运算符

时间:2019-01-26 02:37:25

标签: javascript string

我有一个JSON文件,我想从中获取值并显示。我尝试使用三元运算符,但是由于我有多个变量,因此似乎无法获得所需的输出。这是我尝试过的:

//If there's a word, display its character / reading. Otherwise, just display the reading
return `${json.data[0].word} ? ${json.data[0].word (${json.data[0].reading}) : ${json.data[0].reading}`


这仅输出实际的字符串,但如果json.data [0] .word未定义,则未定义。在这种情况下,我只想显示读数。

2 个答案:

答案 0 :(得分:2)

占位符不能在String模板中递归工作。 编写更清晰的代码。

如果您坚持使用紧凑的三进制代码:

json.data[0].word
  ? `${json.data[0].word} (${json.data[0].reading})`
  : `${json.data[0].reading}`

您不需要外部占位符。

答案 1 :(得分:1)

有一个更简单的方法可以解决此问题。首先,我将创建一个包含结果评估的变量,然后简单地返回该结果的文字。

然后,我将嵌套的三进制分解为一组嵌套的if语句,这些语句将来会更容易理解和修改。看一下下面的代码块,您应该能够非常轻松整洁地构造代码。我认为嵌套三元组是非常不好的做法,应该始终避免。

BeanAttributes