вернуть значение массива объектов после цикла - PullRequest
0 голосов
/ 23 декабря 2018

Мне нужно отсортировать данные из объекта по двум последним цифрам ключа и вывести их в массив из 4 элементов.

Мне нужно получить данные за даты с 1 по 7, с 1 по 14, С 1 по 21 и 30. Я разрезал ключ на последние 2 символа, затем решил проверить его значение в цикле и вернуться к одной из четырех переменных.

К сожалению, я не могу получить доступ к данным после того, какЯ преобразовал объект в строку, и я также уверен, что есть способы, намного более простые, чем этот, о которых я не могу догадаться из-за своего небольшого опыта.

Мне нужен массив типа [data1, data2, data3, data4], где data1 - этоСуммированное значение дат от 2018-10-01 до 2018-10-07, data2 Суммированное значение дат от 2018-10-01 до 2018-10-14 и т. д.

Буду признателен за любую помощь или материалы!

var dates = {
    '2018-10-10': 14,
    '2018-10-11': 3,
    '2018-10-17': 5, 
    '2018-10-23': 3,
    '2018-10-18': 1
    }
    
let a = []
test = function() {
       for (var key in dates) {
            a.push(key.substr(-2))
            if (a.values >= 30){
            let b = a.values
            }
 }
return a
};

console.log(test());

1 Ответ

0 голосов
/ 23 декабря 2018

Вы можете взять массив для нужных суммированных дней и использовать этот массив для добавления значений.

function test() {
    var result = Array.from({ length: 4 }).fill(0),
        days = [7, 14, 21, 31],
        key,
        day,
        i;

    for (key in dates) {
        day = +key.substr(-2);
        i = days.length;
        while (day <= days[--i]) {
            result[i] += dates[key];
        }
    }
    return result;
}

var dates = { '2018-10-10': 14, '2018-10-11': 3, '2018-10-17': 5, '2018-10-23': 3, '2018-10-18': 1 }
    
console.log(test());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...