Skip to content

Instantly share code, notes, and snippets.

@slavafomin
Created September 29, 2017 09:26
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save slavafomin/b3de060ee559bc48980b9d2a87bbf946 to your computer and use it in GitHub Desktop.
Save slavafomin/b3de060ee559bc48980b9d2a87bbf946 to your computer and use it in GitHub Desktop.
const requests = [
{requestId: 't2', startedAt: 1489744808, ttl: 8},
{requestId: 't3', startedAt: 1489744803, ttl: 3},
{requestId: 't1', startedAt: 1489744806, ttl: 12},
{requestId: 't4', startedAt: 1489744810, ttl: 1}
];
let min = requests[0].startedAt;
let max = 0;
requests.forEach(request => {
const completeAt = request.startedAt + request.ttl;
if (request.startedAt < min) {
min = request.startedAt;
}
if (completeAt > max) {
max = completeAt;
}
});
const cummulativeTtl = (max - min);
console.log(cummulativeTtl);
@vhuerta
Copy link

vhuerta commented Nov 1, 2017

let requests = [
  {requestId: 'poiax',  startedAt: 1489744808, ttl: 8},
  {requestId: 'kdfhd',  startedAt: 1489744803, ttl: 3},
  {requestId: 'uqwyet', startedAt: 1489744806, ttl: 12}, 
  {requestId: 'qewaz',  startedAt: 1489744810, ttl: 1}
]

const cumulative = (requests) => Math.max.apply(Math, requests.map(req => req.startedAt + req.ttl)) - Math.min.apply(Math, requests.map(req => req.startedAt));


let r = cumulative(requests);

console.log(r);

@slavafomin
Copy link
Author

@vhuerta That's one unreadable piece of code = )

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment