2017-08-07 46 views
0

下面的代碼可以讓我追加從JSON數組項到一個網頁,表格內的元素:JavaScript數組過濾和映射在數組條目之間產生逗號?

//define a function that will fetch status and set icon URL 
function setServerProcessesServer1761() { 
    var url = "Server1761.json"; 
    var $svc = $("#Server1761-processes"); //get a reference to your <div> 

    $.getJSON(url, function(data) { 
    document.getElementById(
     "Server1761-processes" 
    ).innerHTML = data.processes 
     .filter(s => s.Name.value.includes("company_name")) 
     .map(
     s => 
      `<table><tr><td>${s.Name.value}</td> <td>${ 
      s.Status 
      }</td></tr></table>` 
    ); 
    $("#Server1761-processes").html(function(_, html) { 
     return html.replace(/runn1ng/g, "<img src='smallgreen.png' />"); 
    }); 
    $("#Server1761-processes").html(function(_, html) { 
     return html.replace(/fai1ed/g, "<img src='smallred.png' />"); 
    }); 
    }); // you will have to concatenate the entire services request line on line 130 
} 

//special jQuery syntax to run when document is ready (like onload but better) 
$(function() { 
    setServerProcessesServer1761(); 
}); 

什麼結束了發生的事情是每個錶行後,有一個逗號,是被插上電源:

enter image description here

我想我已經無意中腳本它裏面的代碼,但是當我試圖CTRL+F我沒有找到任何逗號到位。

我想到了更多,我的下一個猜測是它附加了數組中列出的JSON條目,而逗號存在於JSON數組中。

我的問題是,我如何才能從JSON數組被列刪除逗號,讓我的錶行條目看上去更加全面的表,沒有休息或逗號像這樣:

enter image description here

+0

您還沒有公佈足夠的代碼。您應該發佈插入到DOM中的代碼,因爲它最有可能存在問題。我敢打賭,你試圖直接將數組插入到輸出逗號的DOM中,而不是將您的HTML字符串數組連接到一個字符串中,然後插入結果。 – Deadron

回答

4

如果設定了元件的innerHTML到陣列

elem.innerHTML = [1, 2, 3] 

該數組被轉換成在幕後字符串,然後呈現給DOM。

將數組字符串化,默認情況下,它們之間用逗號連接它的所有元素。

console.log(
 
    [1, 2, 3].toString() === [1, 2, 3].join(',') 
 
)

您可以通過手動加入別的東西,例如一個新的生產線覆蓋此:

console.log(
 
    [1, 2, 3].join('\n') 
 
)

+0

按照您的建議,在末尾使用'.join('\ n')'工作得很好。謝謝! –

+1

@NavBowman沒問題,很高興幫助:) – nem035