Ranges intersection

node v18.11.0
version: 1.0.0
endpointsharetweet
const { where, gte, lte, flip } = require('ramda'); const gteR = flip(gte); const lteR = flip(lte); // Esta ha sido mi función inspiradora (encontrada por stackoverflow) // const intersectsRange = ([x1,x2]) => ([y1, y2]) => x2 >= y1 && x1 <= y2; const intersectsRange = ({ tsStart, tsEnd }) => where({ tsEnd: gteR(tsStart), tsStart: lteR(tsEnd) }); const filterDates = { tsStart: 10, tsEnd: 20 }; const queryDates_1 = { tsStart: 5, tsEnd: 12 }; const queryDates_2 = { tsStart: 12, tsEnd: 15 }; const queryDates_3 = { tsStart: 15, tsEnd: 25 }; console.log('Is valid range 5-12 Marzo?', intersectsRange(queryDates_1)(filterDates)); console.log('Is valid range 12-15 Marzo?', intersectsRange(queryDates_2)(filterDates)); console.log('Is valid range 15-25 Marzo?', intersectsRange(queryDates_3)(filterDates));
Loading…

no comments

    sign in to comment