我有以下数据集:
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)=> {
返回[数据[“打开”] [索引],数据[“关闭”] [索引],数据[“高点”] [索引],数据[“低点”] [索引]]
})