我有以下数据集:

const data = [
  ["opens", "opens", "opens"], //opens of stock prices
  ["closes", "closes", "closes"], //closes of stock prices
  ["highs", "highs", "highs"], //highs of stock prices
  ["lows", "lows", "lows"] //close of stock prices
];


我有一个forEach函数,该函数用res的输入调用另一个函数。我正在尝试创建一个rollingInput馈入我的神经网络。目前,每个输出仅接受一个蜡烛输入。我想为示例5创建一个滚动输入。

this.opens.forEach((x, index) => {

    let res = data.reduce((acc, list, idx, arr) => {
        if (idx >= list.length)
            return acc;

        return [...acc, ...arr.map(x => x[idx])];
    }, []);

    console.log(res);
    this.function(res);
});


如何确保在forEach循环进行时res实际上是一个滑动窗口,最新数组最后被送入?

我正在寻找这样的输出
[opens[-5], closes[-5], highs[-5], low[-5],opens[-4], closes[-4], highs[-4], low[-4],opens[-3], closes[-3], highs[-3], low[-3], opens[-3], closes[-2], highs[-2], low[-2], opens[-2], opens, [-1], closes[-1], highs[-1], low[-1], opens[0], closes[0], highs[0], low[0]]

那么下一个输出应从[0]开始并在[5]结束

不知道这是否是正确的方法,也不确定因为负-5显然不存在,我将如何切断负值。

最佳答案

您有arr.map(x => x[idx]),我认为它对应于data["opens"].map(x => x[idx])

代替data["opens"].map(x => x[idx])使用map的索引值获取所有值:

data [“ opens”]。map((value,index)=> {
返回[数据[“打开”] [索引],数据[“关闭”] [索引],数据[“高点”] [索引],数据[“低点”] [索引]]
})

09-06 20:35