简体   繁体   English

使用JavaScript数组到html表

[英]Array to html table using javascript

I have data in Array format as below... (sample one) this is an array..Based on data , I need to generate a html table by custom condition... say, table header will be day1,2,3,4,5,6 and below array has to be based for each header to add row based on the conditions... I have given the details for reference 我有以下数组格式的数据...(示例一),这是一个数组..基于数据,我需要根据自定义条件生成一个html表...说,表头将是day1,2,3, 4,5,6及以下数组必须基于每个标头才能根据条件添加行...我已给出了详细信息以供参考

 var array=   [{"day":1,"summary":"proge1"},
    {"day":1,"summary":"proge2"},
    {"day":1,"summary":"proge3"},
    {"day":2,"summary":"Tues1"},
    {"day":2,"summary":"Tues2"},
    {"day":2,"summary":"Tues3"},
    {"day":3,"summary":"Wed1"},
    {"day":3,"summary":"Wed2"},
    {"day":3,"summary":"Wed3 "},
    {"day":4,"summary":"Thur1"},
    {"day":4,"summary":"Thur2"},
    {"day":5,"summary":"Fri1"},
    {"day":6,"summary":"Sat1"}]

I want to generate a html table based on this data such that it should display as below..can someone please suggest me how to accomplish this.. 我想基于此数据生成一个html表,使其应显示如下。.有人可以建议我如何完成此操作。

    <table>
     <tr>
                       <td align="center">Day1</td>
                        <td align="center">Day2</td>
                        <td align="center">Day3</td>
                        <td align="center">Day4</td>
                        <td align="center">Day5</td>
                        <td align="center"> Day6 </td>
        </tr>
     </table>    

output: 输出:

    ----------------------------------------------
    Day1    |Day2   Day3    Day4    Day5    Day6
   -----------------------------------------------
    proge1  Tue1    Wed1    Thur1   Fri1    Sat1

    proge2  Tue2    Wed2    Thur2       
    proge3  Tue3    Wed3            

Is that we need to call function (day) for each td and generate table by the values? 我们是否需要为每个td调用函数(天)并通过值生成表格?

So you need to have arrays with unique values: 因此,您需要具有唯一值的数组:

var  newarray=[];
 array.forEach(function(el){
   for(var depth=0;depth<newarray.length;depth++){
       newarray[pos]=newarray[pos]||[];
       if(!newarray[pos][el.day-1]){//if the day isnt filled, day 1 is at position zero ( thats why -1)
          newarray[pos][el.day-1]=el;
          return;
       }
  }
});

This will create a table like structure: 这将创建一个类似结构的表:

newarray=[
   [{day:1 ...},{day:2}]
   [{day:1}]
];

Now you can loop trough and build your table: 现在您可以循环槽并构建表:

table=newarray.map(function(row){
  var newrow="<tr>";
  newrow+=row.map(function(el){
        return "<td>"+el.summary+"</td>";
  }).join("");
 newrow+="</tr>";
 return newrow;
}).join("");//make string

Then append it to your dom: 然后将其附加到您的dom:

 document.body.innerHTML=table;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM