从数组中的对象动态创建逻辑或 (||) 运算符

Create logical OR (||) operator dynamically from objects in an array

我正在 JavaScript 中寻找将 objectsArray 转换为逻辑 OR (||) 运算符的解决方案。

我想要实现的一个例子是

const logic =
  (scrollPosition > 0 - 61 && scrollPosition < 1511 - 61) ||
  (scrollPosition > 3021 - 61 && scrollPosition < 4532 - 61) ||
  (scrollPosition > 4531.5 - 61 && scrollPosition < 6041.5 - 61) ||
  (scrollPosition > 9063 - 61 && scrollPosition < 10574 - 61) ||
  (scrollPosition > 10573.5 - 61 && scrollPosition < 12083.5 - 61) ||
  (scrollPosition > 12084 - 61 && scrollPosition < 13091 - 61);

我如何从

得到这个结果
const data = [
  { start: 0, finish: 1511 },
  { start: 3021, finish: 4532 },
  { start: 4531.5, finish: 6041.5 },
  { start: 9063, finish: 10574 },
  { start: 10573.5, finish: 12083.5 },
  { start: 12084, finish: 13091 },
];

Array.prototype.some 检查是否至少有一个元素匹配条件,使其等效于链式 OR。

data.some(x => scrollPosition > x.start - 61 && scrollPosition < x.finish - 61)