Создать скользящее окно ввода с forEach и уменьшить в JavaScript? - PullRequest
0 голосов
/ 10 февраля 2019

У меня есть следующий набор данных:

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 не существует.

1 Ответ

0 голосов
/ 10 февраля 2019

У вас есть arr.map(x => x[idx]), который, как я полагаю, соответствует data["opens"].map(x => x[idx])

Вместо data["opens"].map(x => x[idx]) используйте значение индекса карты для получения всех значений:

data ["opens"].map ((значение, индекс) => {возвращать [данные ["открывает"] [индекс], данные ["закрывает"] [индекс], данные ["максимумы"] [индекс], данные ["минимумы"] [index]]})

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...