Javascript 在JS中创建表时,如何访问多个对象数组
我试图通过javascript创建一个表,我需要在表中列出两个不同对象数组的元素,这两个数组分别是Javascript 在JS中创建表时,如何访问多个对象数组,javascript,Javascript,我试图通过javascript创建一个表,我需要在表中列出两个不同对象数组的元素,这两个数组分别是array1和array2 我曾尝试对结构使用两个,一个在另一个结构中,然后列出4个项,但结果是每个项都显示了几次,而每个项只应列出一次。希望你能帮忙。多谢各位 var array1 = [{name:"name"},{lastname:"lastname"}]; var array2 = [{age:"age"},{date:"date"}]; function myFunction(){ v
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如果我使用两个循环,这些项是否会显示在正确的列表项下?如果数组的元素数不同,您希望表输出是什么样子?请提供一个例子。如果是这样,最好显示多行(元素)。所以其他人知道你的意思&你需要什么。因为你只说了“数组”而不是“嵌套数组”。