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

问题描述 投票:-4回答:1

我有一个搜索方法,它使用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语句,如果它没有。

javascript ejs
1个回答
0
投票

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

推荐问答