Rad*_*ith 13 javascript firebase
如果我想在Firebase中维护一个有序列表,似乎最好的方法是手动为列表中的每个项目分配优先级.这意味着如果我从列表中插入或删除项目,我必须更新其后的所有项目的优先级.对于列表开头的项目,这意味着更新列表中的每个项目.在这种情况下,是否有更好的数据结构或算法?
您可以通过适当设置元素的优先级来创建有序列表。列表中的项目按优先级按字典顺序排序,或者如果优先级可以解析为数字,则按数值排序。
如果您想将项目插入现有列表的中间,修改现有项目的优先级可以,但效率非常低。更好的方法是在要插入值的两个项目之间选择一个优先级,并为新项目设置该优先级。
例如,如果元素 1 的优先级为“a”,元素 2 的优先级为“b”,则可以在优先级为“aa”(或“aq”、“az”等)的两者之间插入元素 3。
根据我们的经验,大多数时候,当您创建有序列表时,您不一定知道要预先插入项目的列表中的位置。例如,如果您正在为游戏创建排行榜,您事先并不知道您想要将新分数放置在列表中的第三位,而是您知道您想要将其插入到分数 10000 的任何位置(这可能恰好是第三)。在这种情况下,只需将优先级设置为分数即可实现此目的。请在此处查看我们的排行榜示例: https ://www.firebase.com/tutorial/#example-leaderboard
| 归档时间: |
|
| 查看次数: |
1100 次 |
| 最近记录: |