1.需求:统计任意时间的总步数
2.分析:
- 1.获取任意时间内的数组对象数据(数组过滤)
- 2.对获取到的数组对象数据进行累加(数组对象累加)
3.代码实现:
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,
},
];
function Count(fTime, lTime) {
let fTimestamp = new Date(fTime + " " + "00:00:00").getTime();
let lTimestamp = new Date(lTime + " " + "23:59:59").getTime();
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);