如何针对对象的未定义属性捕获此错误?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何针对对象的未定义属性捕获此错误?相关的知识,希望对你有一定的参考价值。
我有一个搜索方法,它使用API并返回匹配列表以及'id'和'title'等属性,但只有其中一些有标题。当没有标题存在时,我得到一个未定义的错误。
我已经尝试了很多if = undefined变种,但所有内容都回来了这个错误:
无法读取undefined的属性'title'
<% if (results.length == 0){ %>
<h1>No Matching Results</h1>
<% } else if(typeof results[i].id !== "undefined"){ %>
<a href="/second/<%= results[i].id %>">
<%= results[i].name %>
<% if(results[i].known_for[0].title) { %>
Known For: <%= results[i].known_for[0].title %>
<% } else { %>
Known For: Nothing
<% } %>
</a>
<% } %>
我只是希望它输出一个标题,如果它被提供,然后有一个else语句,如果它没有。
答案
<% if (results.length == 0){ %>
<h1>No Matching Results</h1>
<% } else if(typeof results[i].id !== "undefined"){ %>
<a href="/second/<%= results[i].id %>">
<%= results[i].name %>
<% if(results[i].known_for[0].title !== undefined || results[i].known_for[0].title !== "undefined" || results[i].known_for[0].title !== null) { %>
Known For: <%= results[i].known_for[0].title %>
<% } else { %>
Known For: Nothing
<% } %>
</a>
<% } %>
以上是关于如何针对对象的未定义属性捕获此错误?的主要内容,如果未能解决你的问题,请参考以下文章
如何修复此错误:未捕获(承诺)类型错误:无法读取未定义的属性(读取“长度”)
由于 iOS 中未捕获的异常,架构 i386 和终止应用程序的未定义符号
“未捕获的类型错误:无法在 Websocket Angular JS 上读取未定义的属性‘延迟’”