Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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 更改函数以生成表列而不是行_Javascript_Json - Fatal编程技术网

Javascript 更改函数以生成表列而不是行

Javascript 更改函数以生成表列而不是行,javascript,json,Javascript,Json,我有一个脚本,可以用JSON数据生成一个表,它可以正常工作。 但为了简洁起见,我需要将数据作为垂直标题进行布局。换句话说,高度和日期位于第一列,相应的数据位于右侧 let PROGWandH=[{高度:“108.0”,日期:“2019-04-12 00:00:00”},{高度:“108.0”,日期:“2019-05-13 00:00:00”},{高度:“109.0”,日期:“2019-06-21 00:00:00”},{高度:“111.5”,日期:“2019-10-16 00:00:00”},

我有一个脚本,可以用JSON数据生成一个表,它可以正常工作。 但为了简洁起见,我需要将数据作为垂直标题进行布局。换句话说,高度日期位于第一列,相应的数据位于右侧

let PROGWandH=[{高度:“108.0”,日期:“2019-04-12 00:00:00”},{高度:“108.0”,日期:“2019-05-13 00:00:00”},{高度:“109.0”,日期:“2019-06-21 00:00:00”},{高度:“111.5”,日期:“2019-10-16 00:00:00”},{高度:“111.5”,日期:“2019-11-15 00:00”};
函数generateTableHead(表、数据){
设thead=table.createTHead();
设row=thead.insertRow();
for(让数据的键){
设th=document.createElement(“th”);
让text=document.createTextNode(键);
附文(正文);
第4行,第4行;
}
}
函数生成表(表、数据){
for(数据的let元素){
let row=table.insertRow();
用于(输入元素){
let cell=row.insertCell();
让text=document.createTextNode(元素[key]);
单元格.appendChild(文本);
}
}
}
let table=document.querySelector(“.PROGWandH”);
设data=Object.keys(PROGWandH[0]);
generateTable(表格,PROGWandH);
generateTableHead(表格、数据)
您可以循环N个prop乘以数组,并使用
.reduce()
将单元格字符串重生成行字符串,最后使用
元素。insertAdjacentHTML(where,what)

const arr=[{高度:“108.0”,日期:“2019-04-12 00:00:00”},{高度:“108.0”,日期:“2019-05-13 00:00:00”},{高度:“109.0”,日期:“2019-06-21 00:00:00”},{高度:“111.5”,日期:“2019-10-16 00:00:00”},{高度:“111.5”,日期:“2019-11-15 00:00”};
const rows=Object.keys(arr[0]).reduce((row,pr)=>(row+=`${pr}${arr.reduce((cells,ob)=>(cells+=`${ob[pr]},cells),“”)},row),“”);
//完成后插入一次。
document.querySelector(“.PROGWandH”).insertAdjacentHTML('beforeend',行)

您自己尝试过解决这个问题吗?@RokoC.Buljan我猜:
高度108108109…日期………
@Andreas有意义这些行是由javascript生成的。实际的表是完全空的。我怎样才能避免被否决。我的问题太蹩脚了吗?哇,非常感谢!我通过php生成高度和日期,并对其进行修改以使您的解决方案正常工作。我很惊讶你的代码比我使用的代码短得多。我正在努力学习ECMAScript 5,这是一个很大的帮助@PlanB实际上,对于更人性化的
循环,上述内容都可以在
中重写,但如果您不介意我在这些隐式箭头函数返回中嵌套
.reduce()
。。。我总是可以重写一个更适合我的版本。顺便说一句,欢迎您。祝您编码愉快!很好。