查找与给定时间范围相交的时间范围

时间:2016-11-09 20:57:04

标签: javascript d3.js quadtree

假设我们有很长的时间范围列表:

var timeRanges = [...] as Array<[Date, Date]>

和时间范围:

var searchTimeRange = [startDate, endDate]

我们必须找到timeRanges数组中与searchTimeRange范围相交的元素。

我在考虑使用d3四叉树,但它似乎并不支持矩形作为输入。一般来说,我想避免O(n)。

2 个答案:

答案 0 :(得分:1)

好的很简单,我用过:R-Tree。

https://github.com/mourner/rbush

它允许有效的查询。

答案 1 :(得分:0)

function processTimes = function(time) {
  return (time > searchTimeRange[0] && time < searchTimeRange[1])
}

var processedTimes = timeRanges(filter(processTimes))