遍历嵌套的Javascript对象

遍历嵌套的Javascript对象,javascript,Javascript,我有一个javascript对象,比如 { "Date":{"0":"30-April-2018","1":"27-April-2018","2":"26-April-2018"}, "Open Price":{"0":15.75,"1":16.8,"2":17.5}, "High Price":{"0":15.85,"1":17.0,"2":17.5}, "Low Price":{"0":14.65,"1":15.6,"2":16.35} } 我希望遍历所有外部键(如Date、Open Pr

我有一个javascript对象,比如

{
"Date":{"0":"30-April-2018","1":"27-April-2018","2":"26-April-2018"},
"Open Price":{"0":15.75,"1":16.8,"2":17.5},
"High Price":{"0":15.85,"1":17.0,"2":17.5},
"Low Price":{"0":14.65,"1":15.6,"2":16.35}
}
我希望遍历所有外部键(如Date、Open Price)来创建表头,然后遍历内部元素来创建行。我已经试过了,但它所做的是迭代每个值,甚至日期也被迭代为D,a,t,e。是否可能,或者是否有其他方法可以从javascript对象生成表。

您可以使用object.keys获取键。这将返回所有标题

可以使用Object.values获取所有值,使用reduce汇总数据

让obj={Date:{0:30-April-2018,1:27-April-2018,2:26-April-2018},开盘价:{0:15.75,1:16.8,2:17.5},高价:{0:15.85,1:17.0,2:17.5},低价:{0:14.65,1:15.6,2:16.35} 让headers=Object.keysobj; 让content=Object.valuesObject.valuesobj.reducec,v=>{ Object.entriesv.map[i,o]=>{ c[i]=c[i]| |[]; c[i].普索; }; 返回c; }, {}; console.logheaders; //内容的每个数组元素将在表上显示一行 //将内容循环为 content.forEacho=>console.logo 您可以使用Object.keys获取关键点。这将返回所有标题

可以使用Object.values获取所有值,使用reduce汇总数据

让obj={Date:{0:30-April-2018,1:27-April-2018,2:26-April-2018},开盘价:{0:15.75,1:16.8,2:17.5},高价:{0:15.85,1:17.0,2:17.5},低价:{0:14.65,1:15.6,2:16.35} 让headers=Object.keysobj; 让content=Object.valuesObject.valuesobj.reducec,v=>{ Object.entriesv.map[i,o]=>{ c[i]=c[i]| |[]; c[i].普索; }; 返回c; }, {}; console.logheaders; //内容的每个数组元素将在表上显示一行 //将内容循环为 content.forEacho=>console.logo 你可以试试下面的

var obj={ 日期:{0:30-April-2018,1:27-April-2018,2:26-April-2018}, 开盘价:{0:15.75,1:16.8,2:17.5}, 高价:{0:15.85,1:17.0,2:17.5}, 低价:{0:14.65,1:15.6,2:16.35} }; var headers=Object.keysobj;//获取标题行 变量行=[];//这将是数据的收集 //获取值并对其进行迭代 Object.valuesobj.forEachitem=>{ //迭代对象中的每个值并将其推入数组 Object.valuesitem.forEachval,索引=>{ 行[索引]=行[索引]| |[]; 行[index].pushval; }; }; console.logheaders; console.logrows 你可以试试下面的

var obj={ 日期:{0:30-April-2018,1:27-April-2018,2:26-April-2018}, 开盘价:{0:15.75,1:16.8,2:17.5}, 高价:{0:15.85,1:17.0,2:17.5}, 低价:{0:14.65,1:15.6,2:16.35} }; var headers=Object.keysobj;//获取标题行 变量行=[];//这将是数据的收集 //获取值并对其进行迭代 Object.valuesobj.forEachitem=>{ //迭代对象中的每个值并将其推入数组 Object.valuesitem.forEachval,索引=>{ 行[索引]=行[索引]| |[]; 行[index].pushval; }; }; console.logheaders;
console.logrows;我已经尝试过这个答案,但它所做的是迭代每个值,甚至日期也被迭代为D,a,t,e。你做错了。。。显示您所做的我将javascript对象按原样传递给函数,但每个对象都给我相同的输出。对。。。这句话看起来不像javascript,听起来像是对某事的模糊描述。。。StackOverflow不是一个免费的代码编写服务,它希望您能够这样做。请更新您的问题,以显示您已经尝试过的内容,显示您在a中面临的具体问题。我已经尝试过这个答案,但它所做的是迭代每个值,甚至日期也迭代为D、a、t、e。你做错了。。。显示您所做的我将javascript对象按原样传递给函数,但每个对象都给我相同的输出。对。。。这句话看起来不像javascript,听起来像是对某事的模糊描述。。。StackOverflow不是一个免费的代码编写服务,它希望您能够这样做。请更新您的问题,以显示您已经尝试过的内容,并显示您在某个问题中面临的具体问题。