由于ES6的发布,我想改进代码:
响应示例:
// Ex: 1
response = false;
// Ex: 2
response = {};
// Ex: 3
response = {list: []};
// Ex: 4
response = {list: [{text: false}]};
// Ex: 5
response = {list: [{text: "some text"}]};
代码示例
if (response && response.list && response.list.length>0 && response.list[0] && response.list[0].text){
// Some actions
}
或
if (response && response.list && response.list.length >= 64){
// Some actions
}
如何使这段代码更短而不重复:
response && response.list && response.list.length>0 && response.list[0] && response.list[0].text
最佳答案
可以缩短为
try {
if (response.list[0].text) ...
} catch (err) {}
但不建议用在对性能要求高的地方。
Lodash/Underscore get
已经具有此功能并且可以使用(作为单独的 lodash.get
包提供):
if (_.get(response, 'list[0].text')) ...
关于javascript - 如何改善条件中是否有物体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42489524/