reduce.js 1.15 KB
Newer Older
l2m2's avatar
l2m2 committed
1
var _ = require("lodash");
l2m2's avatar
l2m2 committed
2 3 4

var analysis_state_data = [
{ "start_time": "2020-05-12 12:58:29", "end_time": "2020-05-12 13:02:06"},
l2m2's avatar
l2m2 committed
5 6 7 8 9
// { "start_time": "2020-05-12 13:02:06",	"end_time": "2020-05-12 13:08:08"},
// { "start_time": "2020-05-12 13:08:08",	"end_time": "2020-05-12 13:08:21"},
// { "start_time": "2020-05-12 13:08:08",	"end_time": "2020-05-12 13:08:26"},
// { "start_time": "2020-05-12 13:08:21",	"end_time": "2020-05-12 13:08:57"},
// { "start_time": "2020-05-12 13:09:43",	"end_time": "2020-05-12 13:10:10"}
l2m2's avatar
l2m2 committed
10 11
];

l2m2's avatar
l2m2 committed
12 13 14 15 16
var dirty_index = _.findIndex( analysis_state_data, {start_time :_.last(analysis_state_data).start_time } );
print(dirty_index);
analysis_state_data = _.slice(analysis_state_data, 0, dirty_index);
print(JSON.stringify(analysis_state_data, null, ' '));

l2m2's avatar
l2m2 committed
17 18 19 20 21 22 23 24 25 26 27 28
analysis_state_data = _.reduce(analysis_state_data, function(prev, curr, index){
    if (prev.length > 0) {
        if (curr.start_time == prev[prev.length - 1].start_time) {
            prev[prev.length - 1] = curr;
        } else {
            prev.push(curr);
        }
    } else {
        prev.push(curr);
    }
    return prev;
}, []);
l2m2's avatar
l2m2 committed
29

l2m2's avatar
l2m2 committed
30 31


l2m2's avatar
l2m2 committed
32
print(JSON.stringify(analysis_state_data, null, ' '));