Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.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 从json对象聚集数据并创建层次结构_Javascript_Jquery_Json_Html_Aggregate - Fatal编程技术网

Javascript 从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

我必须创建一个树结构的表,其中包含一些以json数组形式给出的数据

让我们以一个数组为例

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如果有更多级别的层次结构,那么简单的聚合似乎是适用的。我们需要某种方法使任何级别的层次结构(例如国家、州、城市……)成为可能