繁体   English   中英

仅在字典位置的数组值总和 - Javascript

[英]Sum of array values at dictionary positions only - Javascript

我有 x 数量的数据集要发布到折线图中,并且我想要生成一条额外的线,它是特定位置的所有字典条目的总和(在这种情况下,它是条目的日期)。 我只有 1 个字典,因为数据是从数据库中提取的 - 名为“all_users_experiences”的字典。

我正在尝试将每个字典位置的值加在一起并推入另一个数组,这样我就可以将每个位置除以用户数以获得每个位置的总和,但对于我的生活,我只能找到以下示例附加了位置的常规数组,而不是字典值。 JavaScript 新手,所以任何帮助都会很棒!

数组:(2)[数组(30),数组(30)]

数组内容(每个数字都有一个键导致我出现问题!):

(30) [1, 2, 5, 8, 9, 9, 4, 3, 3, 5, 6, 2, 2, 1, 5, 6, 7, 7, 7, 7, 6, 6, 4, 3, 4, 3, 2, 5, 7, 7]

(30) [5, 5, 6, 6, 7, 5, 5, 4, 3, 2, 1, 1, 6, 7, 8, 7, 7, 7, 6, 7, 8, 9, 7, 5, 6, 6, 7, 8, 7, 6]

我已经成功地使用常规数字列表完成了这项工作,但没有使用字典值!

非常感谢你。

编辑:Orignal unaltered Data was parsed into JS 通过 python JSON 只能显示从这个文件中提取的数据出于敏感性原因。 原始问题内容中的数字是下面正在整理的内容。

HTML 控制台快照:

先前的代码已尝试(多次尝试中的 1 次...):

  console.log(all_users_experiences) //Producing 2 arrays
  console.log(all_users_experiences[0])
  console.log(all_users_experiences[1])

  var total_users = Object.keys(linegraph_data).length;

  user_exp_aggregate = []

  for (var i = 0; i < total_users.length; i++){
    user_exp_aggregate.push(all_users_experiences[i][0] + all_users_experiences[i][1]);
    console.log(user_exp_aggregate)
  }
  console.log("Total list: " + user_exp_aggregate)

编辑2

根据 Bergi 的建议进行了修改,但仍然没有将数据添加到新数组中:

  user_exp_aggregate = []
  console.log("Initial list: "+ user_exp_aggregate)
  for (var i = 0; i < total_users.length; i++){
    user_exp_aggregate.push(all_users_experiences[0][i] + all_users_experiences[1][i]);
    console.log("updated list: " + user_exp_aggregate)
  }
  console.log("Total list: " + user_exp_aggregate)

结果的修正快照

如何在图形中使用来自数组的当前数据的示例(尝试创建显示所有用户之间平均值的第三个折线图数据集!):

在此处输入图片说明

这可能是您正在寻找的:

 all_users_experiences = [ [1, 2, 5, 8, 9, 9, 4, 3, 3, 5, 6, 2, 2, 1, 5, 6, 7, 7, 7, 7, 6, 6, 4, 3, 4, 3, 2, 5, 7, 7], [5, 5, 6, 6, 7, 5, 5, 4, 3, 2, 1, 1, 6, 7, 8, 7, 7, 7, 6, 7, 8, 9, 7, 5, 6, 6, 7, 8, 7, 6] ] user_exp_aggregate = [] //Loop to the full length for each for (var i = 0; i < all_users_experiences[0].length; i++) { user_exp_aggregate.push(all_users_experiences[0][i] + all_users_experiences[1][i]); } console.log("Total list: " + user_exp_aggregate) //If you want to divide each value by total user count user_exp_average = [] //var total_users = Object.keys(linegraph_data).length; var total_users = 2 //Assuming total users are 2 for (var i = 0; i < user_exp_aggregate.length; i++) { user_exp_average.push(user_exp_aggregate[i] / total_users); } console.log("Average: " + user_exp_average)

在编辑 2 部分代码中发生的问题是,循环仅运行到总用户长度。 但是根据您的规范,您需要遍历所有体验以获取聚合数组,然后将每个值除以用户总数以获得平均值。

希望能帮助到你。 如有任何疑问,请回复。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM