Javascript 在JS中创建表时,如何访问多个对象数组

Javascript 在JS中创建表时,如何访问多个对象数组,javascript,Javascript,我试图通过javascript创建一个表,我需要在表中列出两个不同对象数组的元素,这两个数组分别是array1和array2 我曾尝试对结构使用两个,一个在另一个结构中,然后列出4个项,但结果是每个项都显示了几次,而每个项只应列出一次。希望你能帮忙。多谢各位 var array1 = [{name:"name"},{lastname:"lastname"}]; var array2 = [{age:"age"},{date:"date"}]; function myFunction(){ v

我试图通过javascript创建一个表,我需要在表中列出两个不同对象数组的元素,这两个数组分别是
array1
array2

我曾尝试对结构使用两个
,一个在另一个结构中,然后列出4个
,但结果是每个项都显示了几次,而每个项只应列出一次。希望你能帮忙。多谢各位

var array1 = [{name:"name"},{lastname:"lastname"}];
var array2 = [{age:"age"},{date:"date"}];

function myFunction(){

var list = "<table width='800' border='1'>" ;
    list = list + "<tr>";
    list = list + "<td colspan='4'> LIST HEADER</td>";
    list = list + "</tr>";
    list = list + "<tr>";
    list = list + "<td> NAME </td>";
    list = list + "<td> LASTNAME </td>";
    list = list + "<td> AGE </td>";
    list = list + "<td> DATE </td>";
    list = list + "</tr>";


    for(var i = 0; i < array1.length; i++){
        for(var j = 0; j < array2.length; j++){
            list += "<tr>";
            list += "<td>" + array1[i].name + "</td>";
            list += "<td>" + array1[i].lastname + "</td>";
            list += "<td>" + array2[j].age + "</td>";
            list += "<td>" + array2[j].date + "</td>";
            list += "</tr>";
   }
}
    list += "</table>";
    $("#listall").html(list);
 }
var array1=[{name:“name”},{lastname:“lastname”}];
var array2=[{age:“age”},{date:“date”}];
函数myFunction(){
var list=“”;
列表=列表+“”;
列表=列表+“列表标题”;
列表=列表+“”;
列表=列表+“”;
列表=列表+名称;
列表=列表+“姓氏”;
列表=列表+年龄;
列表=列表+日期;
列表=列表+“”;
对于(变量i=0;i
好的,我想这就是你想要的:

var combinedArray = array1.concat(array2);
var combinedObject = combinedArray.reduce(function(obj, propObj){
    return _.merge(obj, propObj)
}, {});
我们在许多不同的数组中有一大堆属性值。我们首先将所有这些合并到一个数组中,然后将合并的数组减少到单个对象中

然后我们打印出你想要的钥匙


您应该首先通过
console.log()
检查您的原始代码,您可能会发现问题所在。但我建议我对您的情况采取如下方法

for(var i = 0; i < array1.length; i++){
    for(var j = 0; j < array2.length; j++){
        list += "<tr>";
        list += "<td>" + array1[i].name + "</td>";
        list += "<td>" + array1[i].lastname + "</td>";
        list += "<td>" + array2[j].age + "</td>";
        list += "<td>" + array2[j].date + "</td>";
        list += "</tr>";
for(变量i=0;i
} } 喜欢这个

 for(var i in array1){
        list += "<tr>";
            if(i == 0){
            list += "<td>" + array1[i].name+ "</td>";
            list += "<td>" + array2[i].lastname + "</td>";
            list += "<td>" + array1[parseInt(i)+1].age+ "</td>";
            list += "<td>" + array2[parseInt(i)+1].date + "</td>";  
            }
            else{
            list += "<td>" + array1[parseInt(i)-1].name+ "</td>";
            list += "<td>" + array2[parseInt(i)-1].lastname + "</td>";
            list += "<td>" + array1[i].age+ "</td>";
            list += "<td>" + array2[i].date + "</td>";      
            }                                    
            list += "</tr>";   
}
for(阵列1中的变量i){
列表+=“”;
如果(i==0){
列表+=“”+array1[i]。名称+“”;
列表+=“”+array2[i]。姓氏+“”;
列表+=“”+array1[parseInt(i)+1]。年龄+“”;
列表+=“”+array2[parseInt(i)+1]。日期+“”;
}
否则{
列表+=“”+array1[parseInt(i)-1]。名称+“”;
list+=“”+array2[parseInt(i)-1].lastname+“”;
列表+=“”+array1[i]。年龄+“”;
列表+=“”+array2[i]。日期+“”;
}                                    
列表+=“”;
}

对于
循环,您需要两个
,但它们不应该嵌套。正如@MikeMcCaughan所说,但是如果
array1
的长度始终与
array2
的长度相同,对于
lopp,您只需要1个
。@Mikemcaughan如果我使用两个循环,这些项是否会显示在正确的列表项下?如果数组的元素数不同,您希望表输出是什么样子?请提供一个例子。如果是这样,最好显示多行(元素)。所以其他人知道你的意思&你需要什么。因为你只说了“数组”而不是“嵌套数组”。