【发布时间】:2019-06-23 18:52:52
【问题描述】:
我正在使用框架显示带有动物的表格,这限制了我使用单个三元运算符来显示和格式化我的文本,想法是这样的:如果对象包含 animalType、animalType.name 和 animalType.id,那么检查由 name + id 组成的字符串是否长于 10 个字符,截断文本,否则如果它小于 10,则显示整个文本,如果它们不存在,则显示一个空标题,这就是我的写法使用常规 if else 语句:
if(animalType && animalType.name && animalType.id) {
if ((animalType.name + animalType.id).length > 10) {
return animalType.name + animalType.id.slice(0, 10) + '......'
} else if ((animalType.name + animalType.id).length < 10) {
return animalType.name + animalType.id
}
} else {
return ''
}
通过阅读 mdn 网络文档,我了解到可以通过多个条件:
condition1 ? value1 : condition2 ? value2
这是我使用三元运算符的尝试:
animalType && animalType.name && animalType.id
? (animalType.name + animalType.id).length > 10
: (animalType.name && animalType.id).slice(0, 10)
: (animalType.name + animalType.id).length < 10
? animalType.name && animalType.id
: ''
但是我不知道如何包装三元运算符,以便它在评估名称和 id 是否存在后开始检查,就像在常规 if else 语句中所做的那样,我该如何编写相同的逻辑使用三元运算符?
【问题讨论】:
-
首先你必须修复你不匹配的括号。
-
你的括号不正确。
-
你能声明和使用函数吗?
-
顺便说一句,当字符串正好有 10 个字符时,您的代码不会执行任何操作。
-
我看到了括号,它只是为了得到这个想法的伪代码,将编辑代码
标签: javascript