【发布时间】:2017-12-02 16:08:30
【问题描述】:
给定以下数据结构:
[{
start: 10.2,
end: 15.3,
text: 'Lorem Ipsum....'
}, {
start: 16.3,
end: 20.5,
text: 'dolor sit...'
}, {
start: 19.4,
end: 25.1,
text: 'consectetur adipiscing elit'
}]
我需要找出给定时间的活动文本(例如18,它匹配元素 2 和 3)。我已经实现了一个 find 方法来检查给定时间是否大于 start 并且小于 end。不幸的是,这对于大约 25k 个条目来说效率不高。因此,我正在寻找一个 hashmap 实现,它计算 start 和 end 作为键并在给定时间返回匹配条目。
【问题讨论】:
-
你试过谓词方法吗
-
数据排序了吗?如果是这样,您是否尝试过二进制搜索?
-
@NinaScholz 是的,数据可以在应用程序初始化时按开始或结束排序。将看看二进制搜索。
-
@KalaiselvanA 还没有,可能是一个性能更高的实现,但我想避免遍历整个数组。
-
@Slai 我目前正在尝试间隔树。结果似乎很有希望。
标签: javascript arrays