how to filter array of objects based upon timestamp

前端 未结 2 1247
天涯浪人
天涯浪人 2021-01-07 03:16

I have more than 1 thousand array of objects and every object inside the array contains date and time fileds. This records are inserted to DB for every seconds as shown be

2条回答
  •  抹茶落季
    2021-01-07 03:54

    You could so something like this.

    var input = [{
      "date": "11/22/2016 08:45:58",
      "energy": 29940913188,
      "power": 6783,
      "time": 217781102
    }, {
      "date": "11/25/2016 08:46:01",
      "energy": 29940913267,
      "power": 6792,
      "time": 217781105
    }, {
      "date": "11/25/2016 08:46:02",
      "energy": 29940913318,
      "power": 6791,
      "time": 217781107
    }, {
      "date": "11/25/2016 08:46:04",
      "energy": 29940913344,
      "power": 6797,
      "time": 217781108
    }, {
      "date": "11/25/2016 08:46:05",
      "energy": 29940913396,
      "power": 6816,
      "time": 217781110
    }, {
      "date": "11/25/2016 08:46:07",
      "energy": 29940913421,
      "power": 6798,
      "time": 217781111
    }, {
      "date": "11/25/2016 08:46:08",
      "energy": 29940913473,
      "power": 6804,
      "time": 217781113
    }];
    
    function filter(format) {
      return input.filter((obj) => {
        return obj.date.indexOf(format) !== -1;
      });
    }
    
    var last7Days = getLast7Days();
    var results = last7Days.map((date) => {
      return filter(date);
    }).filter((result) => {
      return result.length != 0
    });
    
    console.log(...results);
    
    
    function pad(number) {
      if (number < 10) {
        return '0' + number;
      }
      return number;
    }
    
    function getLast7Days() {
      var output = [];
      for (var idx = 0; idx < 7; idx++) {
    
        var date = new Date();
        var last = new Date(date.getTime() - ((idx + 1) * 24 * 60 * 60 * 1000));
        var day = pad(last.getDate());
        var month = pad(last.getMonth() + 1);
        var year = last.getFullYear();
    
        output.push(month + "/" + day + "/" + year);
      }
      console.log(output);
      return output;
    }

提交回复
热议问题