微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用日期和值更新数组以包含缺失的日期

如何解决使用日期和值更新数组以包含缺失的日期


我有 2 个包含以下数据的数组

数组 1 有 8 个元素,可以变化,不超过 30 个元素
我从浏览器控制台复制粘贴了这些值,认为这样最易读。

Array1
0:{date_usage:“2021-01-28 00:05:28”,收据:3}
1:{date_usage:“2021-02-01 00:05:28”,收据:4}
2:{date_usage:“2021-02-02 00:05:28”,收据:8}
3:{date_usage:“2021-02-05 15:05:16”,收据:4}
4:{date_usage:“2021-02-09 15:05:17”,收据:13}
5:{date_usage:“2021-02-10 11:12:10”,收据:1}
6:{date_usage:“2021-02-18 00:05:29”,收据:5}
7:{date_usage:“2021-02-19 15:05:18”,收据:3}

数组 2 有 30 个元素。
它是一个包含过去 30 天日期的数组。
所有“收据”均为 0,所有时间可能会有所不同。

数组2
0:{date_usage:“2021-01-21 00:00:00”,收据:0}
1:{date_usage:“2021-01-22 14:00:00”,收据:0}
2:{date_usage:“2021-01-23 09:00:00”,收据:0}
3:{date_usage:“2021-01-24 10:00:00”,收据:0}
......等
29:{date_usage:“2021-02-21 00:00:00”,收据:0}

我想使用 JavaScript 将缺失的日期添加到数组 1 中,或者创建一个包含此数据的新数组。
时间不需要匹配,只需要日期。
每个日期只会在两个数组中出现一次。 我知道这是一个简单的问题,在这个论坛上存在许多变体。
但是每次我尝试解决方案时都会卡住,所以我希望有人能帮助我并指出正确的方向。
如果有不清楚的地方,请告诉我,我会进一步详细说明。
>

解决方法

npm publish --registry //domain.com/repository/some-npm-repositury/:_authToken=NpmToken.${CI_NPM_TOKEN}

试试这个

,

如果我理解正确,您想合并两个数组,结果数据按日期排序。

一种方法是递归地对 (array1+array2) 进行排序。 另一种方法是在 for 循环中逐个追加到第一个数组。

,

所以我就这样结束了。

       //get the dates in array1,the first part (yyyy-mm-dd)
       var arr1_dates = array1.map(function(item) {
            return item.date_usage.split(" ")[0];
        });

        //Compare array1 dates with array2 dates &
        //Add missing to array1    
        for (let i = 0; i < array2.length; i++) {
            var date = array2[i].date_closed.split(" ")[0];

            if (!arr1_dates.includes(date)) {
                array1.push(array2[i])
            }
        }

        //Sort the array by date
        array1 = array1.sort(function(a,b) {
            return new Date(b.date_usage) - new Date(a.date_usage);

        });

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。