Javascript 如何使用两个Json数据呈现HTML表

Javascript 如何使用两个Json数据呈现HTML表,javascript,html,json,Javascript,Html,Json,我必须根据用户需求从两个JSON数据中呈现一个HTML表,我必须从两个查询中独立获取数据,所以我要获取两个JSON数据 几乎85%的工作是在面临从数据2中重新获取一些值的问题时完成的 片段 var数据=[{ “出口”:“S0001”, “品牌代码”:“B0002”, “品牌名称”:“面包房FG”, “grn”:5810 }, { “出口”:“S0001”, “品牌代码”:“B0003”, “品牌名称”:“成品”, “grn”:5895 }, { “出口”:“S0001”, “品牌代码”:“B0

我必须根据用户需求从两个JSON数据中呈现一个HTML表,我必须从两个查询中独立获取数据,所以我要获取两个JSON数据

几乎85%的工作是在面临从数据2中重新获取一些值的问题时完成的

片段

var数据=[{
“出口”:“S0001”,
“品牌代码”:“B0002”,
“品牌名称”:“面包房FG”,
“grn”:5810
},
{
“出口”:“S0001”,
“品牌代码”:“B0003”,
“品牌名称”:“成品”,
“grn”:5895
},
{
“出口”:“S0001”,
“品牌代码”:“B0004”,
“品牌名称”:“糕点和蛋糕FG”,
“grn”:162810
},
{
“出口”:“S0001”,
“品牌代码”:“B0005”,
“品牌名称”:“冰淇淋FG”,
“grn”:281591
},
{
“出口”:“S0001”,
“品牌代码”:“B0006”,
“品牌名称”:“北印度FG”,
“grn”:3824
},
{
“出口”:“S0002”,
“品牌代码”:“B0002”,
“品牌名称”:“面包房FG”,
“grn”:7848
},
{
“出口”:“S0002”,
“品牌代码”:“B0003”,
“品牌名称”:“成品”,
“grn”:6970
},
{
“出口”:“S0002”,
“品牌代码”:“B0004”,
“品牌名称”:“糕点和蛋糕FG”,
“grn”:136450
},
{
“出口”:“S0002”,
“品牌代码”:“B0005”,
“品牌名称”:“冰淇淋FG”,
“grn”:242644
},
{
“出口”:“S0002”,
“品牌代码”:“B0006”,
“品牌名称”:“北印度FG”,
“grn”:8618
}
]
变量数据2=[{
“netAmount”:587714//我正在尝试在S0001的netAmount上填充此内容
“出口”:“S0001”
},
{
“netAmount”:115257,
“outlet”:“S0002”//i正在尝试将其填充到S0002的netAmount上,S0001+S0002的总数=个人销售总额
}
]
让formatData=函数(数据){
设brandcodes=[];
让出口=[];
data.forEach(元素=>{
if(brandcodes.indexOf(element.brandcode)=-1){
brandcodes.push(element.brandcode);
}
if(出口指数)(元件出口)=-1){
插座。推动(元件。插座);
}
});
返回{
数据:数据,
品牌代码:品牌代码,
出口:出口,
};
};
var TotalSalesercentage=''//这是显示总计列的百分比
var OlwiseSalercentage='';//t这是显示出口柱的百分比
让renderTable=函数(数据){
brandcodes=data.brandcodes;
出口=数据出口;
data=data.data;
设tbl=document.getElementById(“BillCountTable”);
让table=document.createElement(“table”);
设thead=document.createElement(“thead”);
让headerRow=document.createElement(“tr”);
设th=document.createElement(“th”);
th.innerHTML=“BillDate”;
添加(“文本中心”);
头颅附属器(th);
设grandTotal=0;//这是total列的总计
让grandNetAmount=0;//这是填充netamount的所有总数的一个
let outletWiseTotal={};//这是一个outlet WiseTotal对象
让outletWiseNetamount={};//这个函数用于填充outletWiseNetamount
th=document.createElement(“th”);
th.colSpan=2;
th.innerHTML=“总计”;
添加(“文本中心”);
头颅附属器(th);
outlets.forEach(元素=>{
th=document.createElement(“th”);
th.colSpan=2;
th.innerHTML=元素;
添加(“文本中心”);
头颅附属器(th);
outletWiseTotal[element]=0;//这个用于存储我要计算百分比的OlWiseTotal
//outletWiseNetamount[元素]=0;
data.forEach(el=>{
如果(出口标高==元件){
outletWiseTotal[element]+=parseInt(el.grn);
//outletWiseNetamount[element]+=parseInt(el.netAmount);
}
});
grandTotal+=outletWiseTotal[元素];
//grandNetAmount+=outletWiseNetamount[元素];
});
附肢儿童(头颅);
headerRow=document.createElement(“tr”);
th=document.createElement(“th”);
th.innerHTML=“”;
头颅附属器(th);
对于(i=0;i<1.length+1;i++){
th=document.createElement(“th”);
th.innerHTML=“销售”;
添加(“文本中心”);
头颅附属器(th);
th=document.createElement(“th”);
th.innerHTML=“Grn entry”;
添加(“文本中心”);
头颅附属器(th);
}
headerRow.insertBefore(th,headerRow.children[1]);
附肢儿童(头颅);
表1.儿童(thead);
headerRow=document.createElement(“tr”);
td=document.createElement(“th”);
td.innerHTML=“总计”;
td.classList.add(“文本中心”);
头畸形儿(td);
设el1=0;
outlets.forEach(元素=>{
td=document.createElement(“th”);
td.innerHTML=outletWiseTotal[element].ToLocalString('en-IN');
td.classList.add(“文本右侧”);
头畸形儿(td);
if(element.outlet==element){
el1=element.netAmount;
//outletWiseNetamount[element]+=parseInt(el.netAmount);
console.log(el1)
}
console.log(el1)
td=document.createElement(“th”);
td.innerHTML=“netAmount”//这是我在数据2中得到的净金额
td.classList.add(“文本右侧”);
头畸形儿(td);
});
td=document.createElement(“th”);
td.innerHTML=“个人销售总额”;//这也是净金额,但它是所有净金额的总和
td.classList.add(“文本右侧”);
headerRow.insertBefore(td,headerRow.children[1]);
td=document.createElement(“th”);
td.innerHTML=grandTotal.toLocaleString('en-IN');
td.classList.add(“文本右侧”);
headerRow.insertBefore(td,headerRow.children[1]);
附肢儿童(头颅);
表1.儿童(thead);
让tbody=document.createElement(“tbody”);
brandcodes.forEach(元素=>{
让row=document.createElement(“tr”);
td=document.createElement(“td”);
td.innerHTML=元素;
世界其他地区(td);
设total=0;
设totalBCount=0;
outlets.forEach(outlets=>{
设el=0;
设bc=0;
dat
td.innerHTML =data2.filter(a=> a.outlet == element)[0]['netAmount']
td.innerHTML = data2.reduce((a,b)=> (a = a+b.netAmount,a),0);