循环后返回对象数组的值

时间:2018-12-23 11:52:24

标签: javascript arrays object

我需要通过键的最后两位对来自对象的数据进行排序,并输出到包含4个元素的数组中。

我需要获取日期1到7、1到14、1到21和30的数据。我将密钥切成最后2个字符,然后决定在整个循环中检查其值并返回四个变量之一

不幸的是,将对象转换为字符串后,我无法访问数据,而且我敢肯定,有很多方法比这要简单得多,由于我的经验不足,所以我无法猜测。

我需要一个类似[data1, data2, data3, data4]的数组,其中data1是从2018-10-012018-10-07的日期的总和,data2是从{{1的日期的总和}}到2018-10-01

我将不胜感激!

2018-10-14

1 个答案:

答案 0 :(得分:0)

您可以将所需的总天数作为一个数组,然后对该数组进行迭代以添加值。

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());