из массива через фильтр элементы:
Есть диапазон - допустим start: 0, end: 45, и есть массив:
[
{
"start": 14,
"end": 24,
},
{
"start": 235,
"end": 245,
},
{
"start": 414,
"end": 428,
}
]
Как удалить из массива все возможные пересечения? Например 0 45 - пересекается с 1 массивом, его выбраываю по условию
const remove = arr.filter(elem => elem.end > val.end);
Как покрыть все остальные возможные варианты?
Примеры start: 15, end: 236 - удалит первый и второй элемент из массива
const remove = arr.filter((item) => !(item.start > 0 && item.end < 45));?
Значения start\end динамические
ну поставь их
function removedByRange(arr, from, to) { return arr.filter((item) => !(item.start > from && item.end < to)); } const remove = removedByRange(arr, 0, 45);
Не сработает для start: 14, end: 45
потому, что 14 не меньше 14
Ребят, вопрос остается открытым. "Жесткое" условие в данном случае не подходит, т.к не обрабатывает пограничные случаи: Например у меня пришел start: 14, и end: 18. Первый массив у меня попадает под start, и я его удаляю фильтрацией. Вопрос: Как учесть все пересечения массива с входящими данными?
Что за массивы-то?
Обсуждают сегодня