JavaScript数组过滤和映射在数组条目之间产生逗号?

时间:2017-08-07 21:19:12

标签: javascript arrays json

以下代码允许我将JSON数组中的条目附加到网页和表元素内:

//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

1 个答案:

答案 0 :(得分:4)

将元素的innerHTML设置为数组时

elem.innerHTML = [1, 2, 3]

该数组在幕后转换为字符串,然后呈现给DOM。

默认情况下,对数组进行字符串化将其所有元素与逗号连接起来。

&#13;
&#13;
console.log(
  [1, 2, 3].toString() === [1, 2, 3].join(',')
)
&#13;
&#13;
&#13;

您可以通过手动加入其他内容来覆盖此内容,例如新行:

&#13;
&#13;
console.log(
  [1, 2, 3].join('\n')
)
&#13;
&#13;
&#13;