• 1000 Проверьте, находится ли массив в пределах диапазона, если он в пределах диапазона, удалите эти числа из основного массива, если не верните false (массив для проверки не находится в диапазоне) После l oop, проверьте длину основного массива, если она больше 0, верните false (коллекция массива находится в пределах диапазона, но не покрывает основной диапазон). Если это 0, значит, массив коллекции находится в пределах допустимого диапазона и охватывает весь основной массив.
При поиске в Google я обнаружил, что используется loda sh. вот код в моей функции:
let parentRange = _.range(start, end + 1); // Expand into array of numbers
for (var i = 0; i < collection.length; i++) {
let rangeToCheck = _.range(collection[i].start, collection[i].end + 1); //Also expand into array of numbers
if (_.difference(rangeToCheck, parentRange).length === 0) { // Check if collection range is within parent range
_.pullAll(parentRange, rangeToCheck); // Remove the numbers from parent range that matches collcection range
} else {
return false; // Not within parent range
}
}
// Check if parent range has values left
if (parentRange.length != 0) {
return false; // Collection ranges does not cover parent range
} else {
return true; // Collection ranges is within parent range, and cover the whole numbers
}