JSFiddle - React, Tailwind, and code Playground

JavaScript

var data1 = [100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110];
var data2 = [102, 104, 106, 108];
var buffer = 3;

function binarySearch(arr, value) {
    var left = 0, right = arr.length;
    var i;
    while (left < right) {
        i = parseInt((right + left) / 2);
        if (arr[i] <= value) {
            left = i + 1;
        } else {
            right = i;
        }
    }

    return left;
}

var largestData2 = data2[data2.length - 1];
var smallestData1LargerThanData2Index = binarySearch(data1, largestData2);
var sliceStart = smallestData1LargerThanData2Index - buffer;
if (sliceStart < 0) sliceStart = 0;

var result = data1.slice(sliceStart);
console.log(JSON.stringify(result));