Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何以百分比显示HTML表格数据_Javascript_Html - Fatal编程技术网

Javascript 如何以百分比显示HTML表格数据

Javascript 如何以百分比显示HTML表格数据,javascript,html,Javascript,Html,我有一个HTML表格,它有一些数字形式的数据,我想把它们转换成百分比 我的Html表的数据在一列中有Total,在同一行中有它的数据。我试图实现的是将nos转换成百分比 这就是我的表现在正在填充的数据 片段 var数据=[ { “金额”:518212, “账单日期”:“2018-08-04”, “出口”:“JAYANAGAR” }, { “金额”:104801, “账单日期”:“2018-08-04”, “出口”:“MALLESHWARAM” }, { “金额”:138151, “账单日期”:

我有一个HTML表格,它有一些数字形式的数据,我想把它们转换成百分比

我的Html表的数据在一列中有Total,在同一行中有它的数据。我试图实现的是将nos转换成百分比

这就是我的表现在正在填充的数据

片段

var数据=[
{
“金额”:518212,
“账单日期”:“2018-08-04”,
“出口”:“JAYANAGAR”
},
{
“金额”:104801,
“账单日期”:“2018-08-04”,
“出口”:“MALLESHWARAM”
},
{
“金额”:138151,
“账单日期”:“2018-08-04”,
“出口”:“科拉尔”
}
]
让formatData=函数(数据){
让billdates=[];
让出口=[];
data.forEach(元素=>{
if(billdates.indexOf(element.billdate)=-1){
推送(element.billdate);
}
if(出口指数)(元件出口)=-1){
插座。推动(元件。插座);
}
});
返回{
数据:数据,
billdates:billdates,
出口:出口,
};
};
让renderTable=函数(数据){
billdates=data.billdates;
出口=数据出口;
data=data.data;
设tbl=document.getElementById(“tbl”);
让table=document.createElement(“table”);
设thead=document.createElement(“thead”);
让headerRow=document.createElement(“tr”);
设th=document.createElement(“th”);
th.innerHTML=“账单日期”;
头颅附属器(th);
设grandTotal=0;
让outletWiseTotal={};
th=document.createElement(“th”);
th.innerHTML=“Total1”;
头颅附属器(th);
outlets.forEach(元素=>{
th=document.createElement(“th”);
th.innerHTML=元素;
头颅附属器(th);
outletWiseTotal[元素]=0;
data.forEach(el=>{
如果(出口标高==元件){
outletWiseTotal[element]+=parseInt(el.amount);
}
});
grandTotal+=outletWiseTotal[元素];
});
附肢儿童(头颅);
headerRow=document.createElement(“tr”);
th=document.createElement(“th”);
th.innerHTML=“总计”;
头颅附属器(th);
outlets.forEach(元素=>{
th=document.createElement(“th”);
//log(outletWiseTotal[element]);
var测试=((outletWiseTotal[元素]/grandTotal)*100);
var fix=测试。toFixed(2)+“%”;
console.log(fix)//这一行为“Total”给出了正确的结果
th.innerHTML=fix;
添加(“文本右侧”);
//按ol计算的总数
头颅附属器(th);
});
th=document.createElement(“th”);
th.innerHTML=“100%”//总计
添加(“文本右侧”);
//总计
headerRow.insertBefore(th,headerRow.children[1]);
附肢儿童(头颅);
表1.儿童(thead);
让tbody=document.createElement(“tbody”);
billdates.forEach(元素=>{
让row=document.createElement(“tr”);
td=document.createElement(“td”);
td.innerHTML=元素;
世界其他地区(td);
设total=0;
outlets.forEach(outlets=>{
设el=0;
data.forEach(d=>{
如果(d.billdate==元素&d.outlet==出口){
总计+=解析整数(d.金额);
el=d.金额;
}
});
td.classList.add(“文本右侧”);
var test1=((el/总计)*100);
console.log(test1)//这一个对第一列给出了错误的结果,它给出了100%,这是错误的
td=document.createElement(“td”);
td.innerHTML=el.tolocalString('en-in');
世界其他地区(td);
});
td=document.createElement(“td”);
td.innerHTML=“100%”//总日期
td.classList.add(“文本右侧”);
console.log(total)//总日期
行插入前(td,行子项[1]);
tbody.appendChild(世界其他地区);
});
表3.儿童(t身体);
tbl.innerHTML=“”;
tbl.附件(表);
表.classList.add(“表”);
table.classList.add(“带条纹的表”);
table.classList.add(“带边框的表”);
}
设FormattedData=FormattData(数据);
可渲染(格式化数据)

您可以做的是首先按日期对数据进行分组,然后使用转换数据创建表。它看起来像这样:

const transformData = {}
//this will group your data by dates
data.forEach(data => {
  if(!transformData[data.billdate]) {
    transformData[data.billdate] = [];
  }
  transformData[data.billdate].push(data);
});

for(let date in transformData) {
  // this will calcualte total amount for that date
  const total = transformData[date].reduce((total, val) => {
    return total + val.amount;
  }, 0);
  transformData[date].forEach(data => {
    // here you can calculate percentage and populate your table
  })
}
试试这个

我已经在循环中创建了一个新变量
let-testotal=0
现在使用temTotal计算百分比

var数据=[{
金额:518212,
账单日期:“2018-08-04”,
出口:“JAYANAGAR”,
},
{
金额:104801,
账单日期:“2018-08-04”,
出口:“MALLESHWARAM”,
},
{
金额:138151,
账单日期:“2018-08-04”,
出口:'KOLAR',
},
]
让formatData=函数(数据){
让billdates=[];
让出口=[];
data.forEach(元素=>{
if(billdates.indexOf(element.billdate)=-1){
推送(element.billdate);
}
if(outlets.indexOf)