如何针对对象的未定义属性捕获此错误?

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>
            <% } %>

以上是关于如何针对对象的未定义属性捕获此错误?的主要内容,如果未能解决你的问题,请参考以下文章

如何修复此错误:未捕获(承诺)类型错误:无法读取未定义的属性(读取“长度”)

使用 React.lazy 时未捕获的未定义错误

由于 iOS 中未捕获的异常,架构 i386 和终止应用程序的未定义符号

“未捕获的类型错误:无法在 Websocket Angular JS 上读取未定义的属性‘延迟’”

如何解决反应身份验证中的未捕获(承诺中)TypeError?

将 google 对象保存到 Core Data - 以 NSException 错误类型的未捕获异常终止