首页 > 解决方案 > 从另一个数组聚合和平均一个数组

问题描述

我从日常周期性事件中接收到大量数据集,我需要将这些数据解析为 7 个轨迹,以便在 plotly.js 中创建散点图。我被困在(在数组地狱中)将多个数据集聚合和平均成 7 个数据集('Mon','Tue',...'Sun')所需的逻辑。

这是我到目前为止所拥有的(仅限伪代码,抱歉)......

let week = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];
let days = new Array(6);

days[0] = {
  x: [1, 2, 3, 4, 5],    // x values in graph (always int)
  y: [1.0, 1.0, 1.0, 1.0, 1.0],  // y value for scatter graph
  c: [1, 1, 1, 1, 1]    // counter for each index of arrays (used for averaging)
}; // Test array for Mon

function collateData(day, data) {
  let loop_day = week.indexOf(day);

  // loop: for (var i = 0; i < days[loop_day].x.length; i++)
  // day array: days[loop_day]
  // data array: data 

  // calc at match (i = iterator): days[loop_day].y[i] += parseFloat((data.y[i]) / (days[loop_day].c[i] ++));
}

collateData('Mon', {
  x: [1, 3, 3, 3, 3, 3, 4, 6],
  y: [1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8]
}); // new data for Mon


days[0] = {
  x: [1, 2, 3, 4, 5, 6],
  y: [1.05, 1.0, 1.33333333333333333333, 1.35, 1.0, 1.8],
  c: [2, 1, 6, 2, 1, 1]
}; // Expected result after parse

以下是规则:

我试过循环.find、、、、.indexOflatIndexOf。我的环境是node.js。我对新模块持开放态度,我已经检查了 lodash 的 API,但还没有弄清楚我需要什么工具!

这是我正在进行的工作:https ://jsfiddle.net/diego_lang/u9rqwjgf/

标签: javascriptnode.jsarrayslodashplotly.js

解决方案


推荐阅读