为了账号安全,请及时绑定邮箱和手机立即绑定

Javascript 用数组中的日期和 0 计数填充缺失的日期

Javascript 用数组中的日期和 0 计数填充缺失的日期

梵蒂冈之花 2023-12-14 14:30:15
我有一个通过代码生成的数组,我正在计算从现在到 7 天前的每一天的每日发生次数。现在我的代码正在跳过没有发生的日子,但我想将这些日子与 0 计数值一起插入。这是我的代码:var myObj;fetch('https://blahblahblah?'+param1+param2+"FromDate"+"="+moment().subtract(7,'d').format('YYYY-MM-DD')).then(res=>res.json()).then(data=>myObj= data);var myRes= [];myObj.forEach(function (elem) {    var date = elem.CreatedDate.split(' ')[0];    if (myRes[date]) {        myRes[date] += 1;    } else {        myRes[date] = 1;    }});现在我得到了类似的结果:2020-12-11: 12020-12-12: 22020-12-13: 12020-12-15: 22020-12-16: 1因为在 12-10 号我没有任何价值,在 12-14 号也没有。给定开始时间moment().subtract(7,'d').format('YYYY-MM-DD')如何输出值为 0 的日期,如下格式所示?:2020-12-10: 02020-12-11: 12020-12-12: 22020-12-13: 12020-12-14: 02020-12-15: 22020-12-16: 1非常感谢编辑:这是我的对象:[{Id, Var1, Var2, CreationDate},{1, 123, Var2, 2020-12-11},{2, 1234, Var2, 2020-12-12},{3, 12345, Var2, 2020-12-12},{4, 1234, Var2, 2020-12-13},{5, 321, Var2, 2020-12-15},{6, 3214, Var2, 2020-12-15},{7, 5432, Var2, 2020-12-16}]
查看完整描述

2 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

计算 myRes 后,您可以创建一个包含最近 7 天日期的数组,然后与 myRes 进行比较以创建包含缺失日期的 FinalResult。


let myRes = {

    '2020-12-11': 1,

    '2020-12-12': 2,

    '2020-12-13': 1,

    '2020-12-15': 2,

    '2020-12-16': 1,

}



const dates = [];

const NUM_OF_DAYS = 7; // get last 7 dates.


for (let i = 0; i < NUM_OF_DAYS; i++) {

  let date = moment();

  date.subtract(i, 'day');

  dates.push(date.format('YYYY-MM-DD'));

}



let finalResult = {};

dates.reverse().forEach(date => {

    if(!myRes.hasOwnProperty(date)) {

        finalResult[date] = 0;

    } else {

        finalResult[date] = myRes[date];

    }

});


console.log(finalResult);

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>


查看完整回答
反对 回复 2023-12-14
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

这个改变对你有用吗?

var myRes= new Array(7).fill(0);


查看完整回答
反对 回复 2023-12-14
  • 2 回答
  • 0 关注
  • 56 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信