js统计任意时间内的总步数(数组过滤+数组对象累加)

1.需求:统计任意时间的总步数
2.分析:
  • 1.获取任意时间内的数组对象数据(数组过滤
  • 2.对获取到的数组对象数据进行累加(数组对象累加
3.代码实现:

/**
*统计两个日期内的总步数
*/
// "2020/8/16上午12:00:00"到"2020/9/15上午12:00:00"的步数记录
const data = [
    {
     step: 1753,
     timestamp: 1597507200000,
    },
    {
     step: 1637,
     timestamp: 1597593600000,
    },
    {
     step: 6216,
     timestamp: 1597680000000,
    },
    {
     step: 6466,
     timestamp: 1597766400000,
    },
    {
     step: 12998,
     timestamp: 1597852800000,
    },
    {
     step: 7731,
     timestamp: 1597939200000,
    },
    {
     step: 7115,
     timestamp: 1598025600000,
    },
    {
     step: 3603,
     timestamp: 1598112000000,
    },
    {
     step: 1659,
     timestamp: 1598198400000,
    },
    {
     step: 3582,
     timestamp: 1598284800000,
    },
    {
     step: 6979,
     timestamp: 1598371200000,
    },
    {
     step: 4567,
     timestamp: 1598457600000,
    },
    {
     step: 7639,
     timestamp: 1598544000000,
    },
    {
     step: 9150,
     timestamp: 1598630400000,
    },
    {
     step: 8565,
     timestamp: 1598716800000,
    },
    {
     step: 6544,
     timestamp: 1598803200000,
    },
    {
     step: 6316,
     timestamp: 1598889600000,
    },
    {
     step: 15523,
     timestamp: 1598976000000,
    },
    {
     step: 8254,
     timestamp: 1599062400000,
    },
    {
     step: 13552,
     timestamp: 1599148800000,
    },
    {
     step: 6163,
     timestamp: 1599235200000,
    },
    {
     step: 6338,
     timestamp: 1599321600000,
    },
    {
     step: 8508,
     timestamp: 1599408000000,
    },
    {
     step: 4002,
     timestamp: 1599494400000,
    },
    {
     step: 7501,
     timestamp: 1599580800000,
    },
    {
     step: 5922,
     timestamp: 1599667200000,
    },
    {
     step: 9635,
     timestamp: 1599753600000,
    },
    {
     step: 7067,
     timestamp: 1599840000000,
    },
    {
     step: 3878,
     timestamp: 1599926400000,
    },
    {
     step: 4088,
     timestamp: 1600012800000,
    },
    {
     step: 773,
     timestamp: 1600099200000,
    },
];
/**
* 获取两个日期内的总步数
* @param {string} fTime 开始时间"YY-MM-DD"
* @param {string} lTime 结束时间"YY-MM-DD"
* @returns 总步数
*/
function Count(fTime, lTime) {
   let fTimestamp = new Date(fTime + " " + "00:00:00").getTime(); //开始时间的0点
   let lTimestamp = new Date(lTime + " " + "23:59:59").getTime(); //结束时间的24点
   let steps = JSON.parse(JSON.stringify(data)); // 获取到步数记录
   // 过滤时间段外的数据
   let resArr = steps.filter((item) => {
        return item.timestamp >= fTimestamp && item.timestamp <= lTimestamp;
   });
   // 计算总数
   let setpsCount = resArr.reduce((prev, next) => {
        return prev + next.step;
   }, 0);
   return setpsCount;
}
// 测试
let res = Count("2020-08-20", "2020-08-25");
console.log("总步数", res);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值