开发者问题收集

HTML 表格的 join() JS

2014-09-12
375

我需要使用 join() 作为 JS 自己的方法,为这些数组中的值添加表格格式。 这是我要显示的两个数组的示例,表格布局应如下所示。

这是 我的代码的一部分 ;显然无法正常工作,因为运行时我得到了错误的“L”表格样式格式。

I know its look terrible to parse HTML like that, but this code is in Google Apps Scripts, so this table is gonna be send it by email.

知道如何获取正确的格式吗?

谢谢。

|-------|-------|
| user  | skill |
|-------|-------|
| user  | skill |
|-------|-------|

   body +=
      "<table style=" + STYLE.TABLE + ">" +

         outUsers.join("<tr><td style=" + STYLE.TD + ">") + "</td></tr>" +

         outSkills.join("<tr><td style=" + STYLE.TD + ">") + "</td></tr>" +

      "</table>";
2个回答

在这种情况下, Array.prototype.join() 无法完成工作,我将改用 Array.prototype.reduce()

以下是它可能的样子:

根据 PHPglue 评论 编辑,将用户和技能放在同一行:

var body ='';
var outUsers = ['me', 'you', 'her'],
    outSkills = ['eating', 'sleeping', 'working hard'],
    STYLE = {
        TABLE: "border: red;",
        TD: "border: blue;"
    },
    getTR = function (prev, curr, index) {
        return prev + '<tr>' + openingTD + curr + '</td>' + openingTD + outSkills[index] + '</td></tr>';
    };

var openingTD = '<td style="' + STYLE.TD + '">';

body += '<table style="' + STYLE.TABLE + '">' +

         outUsers.reduce(getTR, '') +

        "</table>";
axelduch
2014-09-12

我认为您需要查看以下内容:

var table = '<table><tbody>';
for(var i=0,l=outUsers.length; i<l; i++){
  table += '<tr><td>'+outUsers[i]+'</td><td>'+outSkills[i]+'</td></tr>';
}
table += '</tbody></table>';

您应该使用 CSS 进行样式设置。您还应该阅读我上面的评论。

StackSlave
2014-09-12