【问题标题】:Merge different Arrays and Calculate Average price Javascript合并不同的数组并计算平均价格 Javascript
【发布时间】:2021-12-09 02:51:16
【问题描述】:

我正在尝试计算并创建一个包含不同股票平均价格的数组。

对于每只股票,我都有这种格式的数据:

{
  prices: [
    [
      1634304009628,
      0.7118076876774715
    ],
    [
      1634307586874,
      0.7063647246346818
    ],
    [
      1634311139365,
      0.7049706990925925
    ],
    [
      1634313858611,
      0.7085543691926037
    ],
    [
      1634318343009,
      0.7057442983161784
    ]
  ]
}

对于每个股票 API 调用,我都会像上面发布的那样获取数据,它有 2 个值时间戳,第二个是价格。现在假设我想要 5 只股票的平均趋势,我将获取 5 个不同数组中的数据,我只想以某种方式从这 5 个数组中取平均值以找到趋势。

对于最终结果,我希望数组的格式与计算的平均值完全一致(目标是确定趋势方向)。

最好的方法是什么?我正在使用 React

【问题讨论】:

  • 你能澄清一下你期望的结果吗?按原样编写prices 对象。
  • 好吧,对于每个股票 API 调用,我都会像上面发布的那样获得数据,它有 2 个值时间戳,第二个是价格。现在假设我想要 5 只股票的平均趋势,我将获得数据,我只想以某种方式将这 5 个数组的平均值合二为一。

标签: javascript arrays reactjs math


【解决方案1】:

首先只创建价格数组,然后使用 reduce 你可以这样做:

let myObj = {
  prices: [
    [
      1634304009628,
      0.7118076876774715
    ],
    [
      1634307586874,
      0.7063647246346818
    ],
    [
      1634311139365,
        0.7049706990925925
    ],
    [
      1634313858611,
      0.7085543691926037
    ],
    [
      1634318343009,
      0.7057442983161784
    ]
  ]
};
const average = arr => arr.reduce( ( p, c ) => p + c, 0 ) / arr.length;
const pricesArr = myObj.prices.map(function(value,index) { return value[1]; })
const result = average( pricesArr );
console.log(result);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-29
    • 1970-01-01
    • 2018-12-23
    相关资源
    最近更新 更多