【发布时间】:2011-05-25 12:35:31
【问题描述】:
所以,这可能是一件奇怪的事情,但我很好奇它是否可能:
假设我有一个这样的关联数组:
myarray[50] = 'test1'
myarray[100] = 'test2'
我当然可以通过密钥访问'test1':
myarray[50]; // returns 'test1'
但是有没有一种方法,如果我有一个索引键 '60',我可以在数组中查找,如果键 60 不存在,得到值下一个“最接近”的键,'50'?
此用例是我正在尝试为视频设置提示点,如果用户寻找并错过了提示点,我想显示用户寻找的最后一个提示点的信息.
我想我可以使用“in”运算符检查密钥是否存在。但是如果没有找到,我怎样才能得到确实存在的“上一个”或“下一个最小”的数组键?
我认为这样做的唯一方法是遍历数组,保存“最后一个”索引值,直到找到“index > myKey”的退出条件。问题是,如果它是一个有很多队列点的长视频并且用户经常寻找,那么每次遍历整个提示点数组可能会很慢。有没有更好、更快的方法来做到这一点?
【问题讨论】:
标签: javascript arrays hashtable associative-array