2013-05-31 24 views
1

我正在抓取一些JSON,並在其中包含一個數組,並在無序列表中顯示一些數據。問題是在一些條目中,我所查找的值未列出(「aristName」和「trackName」)。所以他們返回undefined。基於我下面的內容,我將如何忽略每個條目返回「artistName」和「trackName」的未定義值,並且只列出具有這些值的條目?當數組對象未定義時不顯示在div中

var output="<ul>"; 

for (var i in data.onNow.playlist) { 
    output+="<li>"+data.onNow.playlist[i].artistName+ 
     " - "+data.onNow.playlist[i].trackName+"</li>"; 
} 

output+="</ul>"; 

document.getElementById("playlist-container").innerHTML=output; 
+0

您可以使用'if'語句並測試'artistName'或'trackName'是否爲'undefined':https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/如果別的。要了解基本的語言結構,我建議閱讀一個教程(http://eloquentjavascript.net/,https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide)。 –

回答

1
var output="<ul>"; 

for (var i in data.onNow.playlist) { 
    var item = data.onNow.playlist[i]; 

    if (item.artistName && item.trackName) { 
     output += "<li>" + item.artistName + " - " + 
      item.trackName + "</li>"; 
    } 
} 

output += "</ul>"; 

這樣,你還篩選出曲目和藝術家的名字是空字符串。

if (foo)的計算結果爲falsefoo是顯式falsenullundefined,數量0,空字符串或NaN。否則它的計算結果爲true。

相關問題