我正在使用 Oboe.js 将 MongoDB 图集集合中的数据流式传输到网页。在 MongoDB JSON 中,某些 _ids 的路径item.image.filename是图像的路径。有些没有 item.image.filename,因为并非所有流式项目都需要图像。当存在未定义的值并且我在控制台中看到错误时,加载停止。我希望如果没有存在值,双簧管将作为其默认行为继续到下一条记录。但是,没有图像路径的 _ids 在我用来排除它们的 if 语句中抛出异常。我想明确的是 item.image.filename 不存在,其中没有任何值或设置为 null,它只是不存在。据我对 MongoDB 的了解,让每个项目都独一无二的灵活性是它的一大优势。我相信我已经用 if 语句检查了所有的方式,甚至使用了 try catch 块,但是在编译时, if 语句本身抛出了这个错误:oboe-browser.min.js:5 Uncaught Error: Cannot read property 'filename' of undefined at oboe-browser.min.js:5 。如果未定义,if else 块将渲染没有图像的 html,否则渲染它。解决这个问题的一种方法是item.image.filename为每个记录添加一个,但我不想,有很多记录,这是我最后的手段。看来需要等待才能解决这个问题。这是我尝试过的:if(!item.image.filename) if(item.image.filename === undefined)if(item.image.filename == 'undefined')if(item.image.filename == undefined)if(item.image.filename === 'undefined')if(item.image.filename === null)if(item.image.filename == null)我采取了另一种路线,例如if(item.image.filename !== undefined)带引号和不带引号,以及 null 。谢谢您的帮助!
2 回答
米琪卡哇伊
TA贡献1998条经验 获得超6个赞
你会想要使用typeof:
if(typeof item !== 'object' || typeof item.image !== 'object' || item.image.filename === undefined){
console.log("undefined as far as you're concerned");
}
您需要知道的是您无法=== undefined对尚未声明的变量进行测试。但只要对象确实存在,就可以对不存在的对象属性进行测试。
冉冉说
TA贡献1877条经验 获得超1个赞
尝试这样的事情:
if(item.image.filename in this)
或者
if(!(item.image.filename in this))
这是一个对象或数组
添加回答
举报
0/150
提交
取消