简化简单的三元表达式
Simplify simple ternary expression
我想验证对象的未定义属性,所以我像这样使用三元
item.subitem ? item.subitem.toString() : ''
有什么方法可以使用 ||
或 &&
来简化这个表达式吗?
很简单:
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'
是的,你可以
(item.subitem || '').toString()
我想验证对象的未定义属性,所以我像这样使用三元
item.subitem ? item.subitem.toString() : ''
有什么方法可以使用 ||
或 &&
来简化这个表达式吗?
很简单:
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'
是的,你可以
(item.subitem || '').toString()