在Javascript中查找最接近所需值的数组条目
Finding array entry closest to required value, in Javascript?
我有一个对象数组,每个对象都有一个属性"time"。数组已按时间排序。我现在想找到条目idx,这样:
findIdx(time): return idx where idx <= time < idx+1
虽然我可以循环浏览这些条目,并在找到相应的条目后立即返回,但我担心这在我的用例中会非常繁重。用例是通过视频进行清理,因此在该操作期间,列表可能会频繁循环。
我目前的想法是创建一个越来越精确的时间树,这样我就可以通过只查询适当的范围来减少列表中的循环。
我可能想得太多了,但如果有任何见解,我将不胜感激。
正如我在评论中所说,如果对数组进行排序,则可以使用二进制搜索来降低CPU成本。
二进制搜索算法的第二个优点是,如果值不包含在数组中,您还可以知道它的索引,从而使插入(并保持数组的排序性质)变得容易。
相关文章:
- 如何遍历包含对象的数组-javascript
- 保存数组javascript
- 查找数组javascript中包含的元素类型
- 算法:从数组(javascript/angular)中按当前日期获取上一个和下一个事件
- 从多维数组javascript中提取特定值
- 如何在数组javascript中选择伪随机值
- 拆分字符串数组(JavaScript)后未定义
- 从数组JavaScript中删除并返回最后n个项的最快方法
- 使用条件for循环更新数组-Javascript
- 从数组javascript创建新对象
- 用数组(javascript)中的值替换regex捕获
- 从数组[Javascript]的总长度中减去一个干净的数字
- 将一个字符串数组解析为一个新的数组javascript
- 如何将对象转换为对象数组javascript
- 赢得't循环数组javascript
- 从不同的数组 JavaScript 中获取值
- 多维数组 JAVASCRIPT 出了点问题
- 可以't分配给一个对象数组javascript
- 比较数组JavaScript中的对象
- 如何完成缺少(连续)元素的数组|Javascript