I need to push my new object in array of objects and check: if new object doesnt overlap objects that exists by start and end values. I write this one. Can i make it shorter? Or maybe there is better method to do it?
let arr = [
{
start: 0,
end: 10
},
{
start: 30,
end: 40
},
{
start: 60,
end: 70
},
{
start: 100,
end: 110
},
{
start: 140,
end: 150
},
{
start: 180,
end: 190
}
];
let objToPush = {
start: 45,
end: 50
}
if (!arr.find(o => objToPush.start > o.start && objToPush.start < o.end)) {
if (!arr.find(o => objToPush.end > o.start && objToPush.end < o.end)) {
console.log('push');
arr.push(objToPush);
} else {
console.log('not push');
}
} else {
console.log('not push');
}
Ashish hit the nail on the head, and that overlap comparison is awesome!
For anyone who needs it fast:
This is assuming that:
start
value that's less than or equal to theirend
value.