Упростите простое троичное выражение - PullRequest
0 голосов
/ 25 февраля 2019

Я хочу проверить неопределенные атрибуты из объекта, поэтому я использую троичную, как это

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

Есть ли способ упростить это выражение, используя || или &&?

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019

Да, вы можете

(item.subitem || '').toString()
0 голосов
/ 25 февраля 2019

Это просто:

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

Или просто как:

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

ИЛИ,

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

Если вы можете использовать дополнительное связывание, тоэто может быть еще проще:

item.subitem?.toString()

См. этот пост для более подробной информации.


Как @ Томас упоминается в комментарии Вы также можете использовать массив и конвертировать в строку:

[item.subitem].toString();

Это должно прояснить, как это будет работать:

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