例如,我想看看response.objects[0].images[0].url
是否存在(并且不是空的)
验证对象中是否存在url属性的最佳方法是什么?
如果我刚刚做了
if (response.objects[0].images[0].url !== undefined && response.objects[0].images[0].url !== null {
console.log(response.objects[0].images[0].url);
}
但如果url
之前的任何属性本身未定义或为null,则可能导致问题。
我是否应该深度嵌套并验证以前的每个属性是否都不为空且未定义?
答案 0 :(得分:1)
使用解析器:
function resolve(start) {
return [].slice.call(arguments, 1).reduce(function(obj, prop) {
return obj && obj[prop];
}, start);
}
resolve(response, "objects", 0, "images", 0, "url");
如果它返回undefined,那么一路上的东西变坏了......