Javascript 从两个数组创建html表,其中数组长度不必相同

Javascript 从两个数组创建html表,其中数组长度不必相同,javascript,html,jquery,html-table,Javascript,Html,Jquery,Html Table,我从一些服务器得到两个数组作为响应,这些数组可以具有不同的长度。我想用这个数组建立一个表 例如,服务器响应是 let a1=response.a1; let a2=response.a2; 在哪里 所以我希望桌子是这样的: +------+------+ | Col1 | Col2 | +------+------+ | a | d | | b | e | | c | | +------+------+ 我需要像这样的东西: var rows=&q

我从一些服务器得到两个数组作为响应,这些数组可以具有不同的长度。我想用这个数组建立一个表

例如,服务器响应是

let a1=response.a1;
let a2=response.a2;
在哪里

所以我希望桌子是这样的:

+------+------+
| Col1 | Col2 |  
+------+------+
| a    | d    |
| b    | e    |
| c    |      |
+------+------+
我需要像这样的东西:

var rows=""
for(var i=0;i<a1.length;i++)
{
    for(var j=0;j<a2.length;j++)
    {
       rows+='<tr>....</tr>'
    }
}
$('#myTbody').html(rows);
var rows=“”
对于(var i=0;i
const a1=['100'、'50000'、'60000'];
常数a2=[1111','2222'];
常量greaterLength=(a1.length>=a2.length)?a1.length:a2.length;
让商店“”;
对于(变量i=0;i
const a1=['100'、'50000'、'60000'];
常数a2=[1111','2222'];
常量greaterLength=(a1.length>=a2.length)?a1.length:a2.length;
让商店“”;
对于(变量i=0;i警报(存储);
这里的棘手问题是一个数组可能比另一个数组长,因此首先:

  • 查找最大数组的大小
  • 创建一个循环,该循环将添加与最长数组大小一样多的表行
  • 将单元格内容添加到每一行,处理1个数组在该特定数组索引处可能没有任何定义值的情况(因为数组大小不同)
  • 我添加了
    //1.
    //2.
    //3.
    以帮助参考说明

    const a1=['a','b','c']
    常数a2=['d','e','f','g']
    常量maxArrayLength=Math.max(a1.length,a2.length)//1。
    const tbody=document.querySelector('tbody');
    对于(设i=0;i
    
    可乐
    可乐
    
    这里的棘手问题是,一个数组可能比另一个数组长,因此首先:

  • 查找最大数组的大小
  • 创建一个循环,该循环将添加与最长数组大小一样多的表行
  • 将单元格内容添加到每一行,处理1个数组在该特定数组索引处可能没有任何定义值的情况(因为数组大小不同)
  • 我添加了
    //1.
    //2.
    //3.
    以帮助参考说明

    const a1=['a','b','c']
    常数a2=['d','e','f','g']
    常量maxArrayLength=Math.max(a1.length,a2.length)//1。
    const tbody=document.querySelector('tbody');
    对于(设i=0;i
    
    可乐
    可乐
    
    HTML代码:

        <table id="myTbody">
        </table>
    
    
    
    Javascript代码

    a1 = ['a', 'b', 'c'];
    a2 = ['d', 'e'];
    
    var maxLen = 0;
    if (a1.length > a2.length) {
        maxLen = a1.length;
    } else {
        maxLen = a2.length;
    }
    
    var tableHtml = '<tr><th>col1</th><th>col2</th></tr>'
    
    for (var i = 0; i < maxLen; i++) {
        tableHtml = tableHtml + '<tr>';
        tableHtml = tableHtml + '<td>' + (i >= a1.length ? '' : a1[i]) + '</td>';
        tableHtml = tableHtml + '<td>' + (i >= a2.length ? '' : a2[i]) + '</td>';
        tableHtml = tableHtml + '</tr>';
    }
    
    $('#tabby').html(tableHtml);
    
    a1=['a','b','c'];
    a2=['d','e'];
    var maxLen=0;
    如果(a1.长度>a2.长度){
    最大长度=1.5米;
    }否则{
    最大长度=a2.5米;
    }
    var tableHtml='col1col2'
    对于(变量i=0;i=a1.length?“”:a1[i])++;
    tableHtml=tableHtml++(i>=a2.length?“”:a2[i])++;
    tableHtml=tableHtml+“”;
    }
    $('#tabby').html(tableHtml);
    
    HTML代码:

        <table id="myTbody">
        </table>
    
    
    
    Javascript代码

    a1 = ['a', 'b', 'c'];
    a2 = ['d', 'e'];
    
    var maxLen = 0;
    if (a1.length > a2.length) {
        maxLen = a1.length;
    } else {
        maxLen = a2.length;
    }
    
    var tableHtml = '<tr><th>col1</th><th>col2</th></tr>'
    
    for (var i = 0; i < maxLen; i++) {
        tableHtml = tableHtml + '<tr>';
        tableHtml = tableHtml + '<td>' + (i >= a1.length ? '' : a1[i]) + '</td>';
        tableHtml = tableHtml + '<td>' + (i >= a2.length ? '' : a2[i]) + '</td>';
        tableHtml = tableHtml + '</tr>';
    }
    
    $('#tabby').html(tableHtml);
    
    a1=['a','b','c'];
    a2=['d','e'];
    var maxLen=0;
    如果(a1.长度>a2.长度){
    最大长度=1.5米;
    }否则{
    最大长度=a2.5米;
    }
    var tableHtml='col1col2'
    对于(变量i=0;i=a1.length?“”:a1[i])++;
    tableHtml=tableHtml++(i>=a2.length?“”:a2[i])++;
    tableHtml=tableHtml+“”;
    }
    $('#tabby').html(tableHtml);
    
    我在上面的回答中提到了这一点,只是想发布一个示例,说明如何绕过比较阵列长度的需要。:)

    您可以做的是将两个数组合并到另一个数组中(创建一个二维数组),然后使用此合并数组的长度来获取总列数

    然后使用嵌套的for循环,我们可以循环二维数组中的每个数组,并将其作为行值添加到列中

    我在下面贴了一个简单的例子:)

    让a1=['a','b','c'];
    设a2=['d','e'];
    //创建二维阵列
    //将看起来像[[a','b','c','d','e'];
    设mergedArray=[a1,a2];
    for(设i=0;i}
    我在上面的回答中提到了这一点,只是想发布一个示例,说明如何绕过比较阵列长度的需要。:)

    您可以做的是将两个数组合并到另一个数组中(创建一个二维数组),然后使用此合并数组的长度来获取总列数

    然后使用嵌套的for循环,我们可以循环二维数组中的每个数组,并将其作为行值添加到列中

    我在下面贴了一个简单的例子:)

    让a1=['a','b','c'];
    设a2=['d','e'];
    //创建二维阵列
    //将看起来像[[a','b','c','d','e'];
    设mergedArray=[a1,a2];
    for(设i=0;i}
    非常好-我打算提供完全相同的解决方案