【发布时间】:2013-12-19 13:23:19
【问题描述】:
我有一个 Node.js 应用程序,我必须经常做以下事情: - 检查特定数组是否已经包含某些元素 - 如果元素确实存在,更新它 - 如果元素不存在,则将其推送到数组中,然后使用下划线 _.sortBy 对其进行排序
为了检查元素是否已经存在于数组中,我使用了这个二分查找函数: http://oli.me.uk/2013/06/08/searching-javascript-arrays-with-a-binary-search/
这样,当数组的大小变大时,排序就会越来越慢。 我假设数组大小可能会增长到每个用户最多 20 000 个项目。最终会有成千上万的用户。该数组按一个键排序,这是一个相当短的字符串。如果需要,可以将其转换为整数。
所以,我需要一种更好的方法来保持数组排序, 而不是每次将新元素推送到其上时对其进行排序。
所以,我的问题是,我应该/如何编辑我使用的二进制搜索算法,以使我能够 如果数组中尚不存在新元素,则获取应放置新元素的数组索引? 或者还有什么其他的可能性来实现这一点。当然,我可以使用某种循环,从头开始遍历数组,直到找到新元素的位置。
所有数据都存储在MongoDB中。
换句话说,我希望在每次推送新元素时保持数组排序而不对其进行排序。
【问题讨论】:
标签: javascript arrays node.js sorting