Javascript 从json对象聚集数据并创建层次结构
我必须创建一个树结构的表,其中包含一些以json数组形式给出的数据 让我们以一个数组为例Javascript 从json对象聚集数据并创建层次结构,javascript,jquery,json,html,aggregate,Javascript,Jquery,Json,Html,Aggregate,我必须创建一个树结构的表,其中包含一些以json数组形式给出的数据 让我们以一个数组为例 array : [ { "continent": "Asia", "country":"India", "population": 100, "GDP":4}, { "continent": "Asia", "country":"china", "population": 130, "GDP":20}, { "continent": "Asia", "country":"Pakistan", "popula
array :
[
{ "continent": "Asia", "country":"India", "population": 100, "GDP":4},
{ "continent": "Asia", "country":"china", "population": 130, "GDP":20},
{ "continent": "Asia", "country":"Pakistan", "population": 20, "GDP":1},
{ "continent": "Europe", "country":"UK", "population": 2, "GDP":15},
{ "continent": "Europe", "country":"France", "population": 4, "GDP":16},
{ "continent": "Europe", "country":"Germany", "population": 5, "GDP":21}
]
表就像一棵树,可以展开或折叠。
让这棵树像
continent country population GDP
Asia + 250 25
Europe - 11 52
UK 2 15
France 4 16
Germany 5 21
在上表中,我们扩展了欧洲,在下表中,我们扩展了亚洲
continent country population GDP
Asia - 250 25
India 100 4
China 130 20
Pakisthan 20 1
Europe + 11 52
请帮助我创建包含聚合值的表。谢谢:)您在标签中提到了
javascript
,所以我想您需要JS的答案。我给你一些你需要研究的关键词
首先,声明变量
var regions = [
{ "continent": "Asia", "country":"India", "population": 100, "GDP":4},
{ "continent": "Asia", "country":"china", "population": 130, "GDP":20},
{ "continent": "Asia", "country":"Pakistan", "population": 20, "GDP":1},
{ "continent": "Europe", "country":"UK", "population": 2, "GDP":15},
{ "continent": "Europe", "country":"France", "population": 4, "GDP":16},
{ "continent": "Europe", "country":"Germany", "population": 5, "GDP":21}
];
然后,你需要一些东西来保存各种答案:
var results={};//注意,这是一个对象。不是数组
接下来,使用标准循环处理在阵列上循环。如果需要支持较旧的浏览器,则使用for
循环;如果只能针对较新的浏览器,则使用forEach
循环
对于每个循环,查看结果中是否存在大陆
。如果不是,请添加值为0的属性
然后在结果[]中累积GDP
函数showHide(){
var td=这个,
tr=this.parentElement,
next=td.nextElementSibling;
如果(tr.className==“可见”){
var rowSpan=td.rowSpan;
td.oldRowSpan=行span;
td.rowSpan=next.rowSpan=1;
tr.className='collapsed';
对于(var i=1;我不知道如何进行):(当某人在某一特定点上陷入困境时,本网站的人员并不介意帮助他们,但我们大多数人不会只给出“现成的”问题的解决方案。在回答中,我将对需要做的事情给出一个粗略的指导,但这不是一个有效的解决方案。至少为我提供一种聚合方法,我不是在从UI设计开始就对整个事情进行讨论!-\@SoftwareFarmer然后,你想要聚合值(例如,你使用AJAX获得的值)画完表格后?是的,没错,当我们折叠国家列时,一个大陆上所有国家的合计值必须显示在人口、gdp列中。请参考我的问题一次!@SoftwareFarmer啊,那么你不想添加新行,你只想求和值!我应该看得更好你的示例问题我s如果有更多级别的层次结构,那么简单的聚合似乎是适用的。我们需要某种方法使任何级别的层次结构(例如国家、州、城市……)成为可能