简化简单的三元表达

问题描述 投票:0回答:2

我想从一个对象验证未定义的属性,所以我使用这样的三元组

item.subitem ? item.subitem.toString() : ''

有没有办法使用||&&简化这个表达式?

javascript conditional ternary-operator
2个回答
2
投票

这很简单:

item.subitem && item.subitem.toString() || ''

或者只是喜欢:

(item.subitem || '').toString()

要么,

''+(item.subitem || '')

如果您可以使用可选链接,那么它可以更简单:

item.subitem?.toString()

有关详细信息,请参阅this post


作为@Thomas mentioned in comment,您还可以使用数组并转换为字符串:

[item.subitem].toString();

这应该明确它将如何工作:

[].toString(); // ''
[undefined].toString(); // ''
['foo'].toString(); // 'foo'
['foo', 'bar'].toString(); 'foo,bar'

1
投票

是的你可以

(item.subitem || '').toString()
© www.soinside.com 2019 - 2024. All rights reserved.