javascript在表中显示数组结果

javascript在表中显示数组结果,javascript,jquery,Javascript,Jquery,我有以下JavaScript循环,它将搜索表单的结果输出到表中 l = data.length; for (var i=0; i < l; i++) { var row = $('<tr><td>' + data[i].email_address + '</td><td>' + data[i].number_of_orders + '</td><td>' + '£' + data[i].to

我有以下JavaScript循环,它将搜索表单的结果输出到表中

l = data.length;
for (var i=0; i < l; i++) {
    var row = $('<tr><td>' + data[i].email_address + '</td><td>' 
    + data[i].number_of_orders + '</td><td>' 
    + '£' + data[i].total_order_value + '</td></tr>');
    $('#Reports').append(row);
} 
l=data.length;
对于(变量i=0;i
像这样

我需要编辑它,这样我就有了这样的表视图

带有一个
,在该域的结果之前显示域名

我有一个包含搜索的域的变量,我的数组包含一个包含该域的键值

谁能给我指出正确的方向吗

我目前的想法是,我需要将搜索变量插入到我的循环中,并在每次循环后检查域是否没有更改


任何帮助都很好

您应该有一个带有域名的变量

确保输入的所有数据都按域的顺序排列,否则应按域结尾的字母顺序排列

接下来,您将执行if语句,如果此条目的域等于上一条条目,则使用新域插入行。然后插入新条目


并将域名变量更新为上一条目的域。因此,它将循环遍历所有值,根据需要添加适当的头。

您应该有一个带有域名的变量

确保输入的所有数据都按域的顺序排列,否则应按域结尾的字母顺序排列

接下来,您将执行if语句,如果此条目的域等于上一条条目,则使用新域插入行。然后插入新条目


并将域名变量更新为上一条目的域。因此,它将循环遍历所有值,根据需要添加适当的标题。

使用您拥有的数据,创建一个数据结构,帮助您在实际构建表之前构建表

假设我们有以下数据

var data = [{
    email_address: 'someone@able.com',
    number_of_ordrs: 4,
    total_order_value: 5.56
}, {
    email_address: 'someone.else@bodge.com',
    number_of_orders: 3,
    total_order_value: 8.97
}, {
    email_address: 'another@able.com',
    number_of_orders: 6,
    total_order_value: 0.93
}, {
    email_address: 'someone@bodge.com',
    number_of_orders: 6,
    total_order_value: 0.93
}];
让我们对其进行变换,使其看起来像

var newData: {
    'able.com': [{
        email_address: 'someone@able.com',
        number_of_orders: 4,
        total_order_value: 5.56
    }, {
        email_address: 'another@able.com',
        number_of_orders: 6,
        total_order_value: 0.93
    }],
    'bodge.com': [{
        email_address: 'someone.else@bodge.com',
        number_of_orders: 3,
        total_order_value: 8.97
    }, {
        email_address: 'someone@bodge.com',
        number_of_orders: 6,
        total_order_value: 0.93
    }]
};
我们还需要另一个变量
domains
,一个数组来存储和排序域。在JavaScript中,对象是一个对象,因此在对象上迭代不是一个好主意。相反,我们将使用
来确保订单

$(函数(){
风险值数据=[{
电子邮件地址:'someone@able.com',
订单数量:4,
订单总价值:5.56
}, {
电子邮件地址:某人。else@bodge.com',
订单数量:3,
订单总价值:8.97
}, {
电子邮件地址:'another@able.com',
订单数量:6,
总订单价值:0.93
}, {
电子邮件地址:'someone@bodge.com',
订单数量:6,
总订单价值:0.93
}];
var newData={};
data.forEach(函数(d){
var domain=d.email_address.split('@')[1];
//这是一个新域名吗?
如果(!newData.hasOwnProperty(域)){
新数据[域]=[];
}
//添加条目
newData[domain].push(d);
});
//按字母顺序获取和排序域
var domains=Object.keys(newData.sort();
//console.log(域、新数据);
//生成表
var html='';
domains.forEach(函数(域){
html+=''+域+'';
newData[domain].forEach(函数(条目){
html+='';
html+=''+entry.email_address+'';
html+=''+entry.number of_orders+'';
html+=''+entry.total\u order\u value+'';
html+='';
});
});
html+='';
$('#Reports').html(html);
});
表格{
边框:1px实心#000;
边界塌陷:塌陷;
}
运输署{
边框:1px实心#000;
填充物:5px;
文本对齐:居中;
}

使用您拥有的数据,创建一个数据结构,在实际构建表之前帮助您构建表

假设我们有以下数据

var data = [{
    email_address: 'someone@able.com',
    number_of_ordrs: 4,
    total_order_value: 5.56
}, {
    email_address: 'someone.else@bodge.com',
    number_of_orders: 3,
    total_order_value: 8.97
}, {
    email_address: 'another@able.com',
    number_of_orders: 6,
    total_order_value: 0.93
}, {
    email_address: 'someone@bodge.com',
    number_of_orders: 6,
    total_order_value: 0.93
}];
让我们对其进行变换,使其看起来像

var newData: {
    'able.com': [{
        email_address: 'someone@able.com',
        number_of_orders: 4,
        total_order_value: 5.56
    }, {
        email_address: 'another@able.com',
        number_of_orders: 6,
        total_order_value: 0.93
    }],
    'bodge.com': [{
        email_address: 'someone.else@bodge.com',
        number_of_orders: 3,
        total_order_value: 8.97
    }, {
        email_address: 'someone@bodge.com',
        number_of_orders: 6,
        total_order_value: 0.93
    }]
};
我们还需要另一个变量
domains
,一个数组来存储和排序域。在JavaScript中,对象是一个对象,因此在对象上迭代不是一个好主意。相反,我们将使用
来确保订单

$(函数(){
风险值数据=[{
电子邮件地址:'someone@able.com',
订单数量:4,
订单总价值:5.56
}, {
电子邮件地址:某人。else@bodge.com',
订单数量:3,
订单总价值:8.97
}, {
电子邮件地址:'another@able.com',
订单数量:6,
总订单价值:0.93
}, {
电子邮件地址:'someone@bodge.com',
订单数量:6,
总订单价值:0.93
}];
var newData={};
data.forEach(函数(d){
var domain=d.email_address.split('@')[1];
//这是一个新域名吗?
如果(!newData.hasOwnProperty(域)){
新数据[域]=[];
}
//添加条目
newData[domain].push(d);
});
//按字母顺序获取和排序域
var domains=Object.keys(newData.sort();
//console.log(域、新数据);
//生成表
var html='';
domains.forEach(函数(域){
html+=''+域+'';
newData[domain].forEach(函数(条目){
html+='';
html+=''+entry.email_address+'';
html+=''+entry.number of_orders+'';
html+=''+entry.total\u order\u value+'';
html+='';
});
});
html+='';
$('#Reports').html(html);
});
表格{
边框:1px实心#000;
边界塌陷:塌陷;
}
运输署{
边框:1px实心#000;
填充物:5px;
文本对齐:居中;
}


Wow,感谢您提供如此详细的代码。这有助于我整理我想要显示的多个类别,实际上我花了5天的时间进行研究,因为我不知道如何删除循环表单中的重复属性,然后再显示它们。干杯@没问题,很乐意帮忙。哇,谢谢你提供这么详细的代码。这有助于我整理出我想要显示的多个类别