按类别和日期添加对象值

时间:2017-11-23 18:37:04

标签: javascript object key

所以我目前正在开发一个动态工具,我使用Dropdown选择器选择数据。目前,我希望按类别选择数据,并添加包含相同年份和类别的所有值。

以下是我的数据集示例。

var data:[{
           0:
             Age group: '6 years'
             Date:'2002',
             Geography:'Alberta'
             Sex:'Males'
             Value:'19632.0'
         },{
           1: 
             Age group: '7 years'
             Date:'2002',
             Geography:'Alberta'
             Sex:'Females'
             Value:'1030.0'
           },
          {
           2: 
             Age group: '5 years'
             Date:'2002',
             Geography:'Ontario'
             Sex:'Females'
             Value:'103.0'
           }
           {
           3: 
             Age group: '7 years'
             Date:'2002',
             Geography:'Ontario'
             Sex:'Females'
             Value:'1030.0'
           }]

我想将所有值添加到一起,无论选择哪个类别并分类到年份。

例如:如果用户选择" Geography"将每年和每个特定类别的所有值添加到一起以获得它们的总和。 因此,您对该年度的每个类别都有一个值。

1 个答案:

答案 0 :(得分:0)



var data=[{
             Age_group: '6 years',
             Date:'2002',
             Geography:'Alberta',
             Sex:'Males',
             Value:19632.0
         },{
             Age_group: '7 years',
             Date:'2002',
             Geography:'Alberta',
             Sex:'Females',
             Value:1030.0
           },
          {
             Age_group: '5 years',
             Date:'2002',
             Geography:'Ontario',
             Sex:'Females',
             Value:103.0
           },
           {
             Age_group: '7 years',
             Date:'2002',
             Geography:'Ontario',
             Sex:'Females',
             Value:1030.0
           }]
           
   function avg (data, group, group_value, value){
   var result = 0 
   var total = 0
    data.forEach(function(d,i){
      if(d[group] == group_value){
      result= result + d[value]
      total = total + 1
      }
    })
    return result/total
   }
   
   var avg_Geography = avg(data,'Geography','Ontario','Value')
   var avg_Age = avg(data,'Age_group','7 years','Value')
   
   console.log(avg_Geography)
   console.log(avg_Age)




  1. 将数组对象修复为正确的格式
  2. 使用动态输入创建功能
  3. 运行函数以获取值