很抱歉,我找不到合适的标题。
在我正在处理的用户中,有一个带有选项列表的分页菜单,但是此分页菜单每页只能显示7个选项/项目,并且用户必须在页面之间滚动才能看到所有项目。 稍后,用户可能会被送回到所选选项的确切页面,我的难题是找到最佳算法以找到正确的项目索引页面编号。
所以说选项索引是4,然后页面是#1,或者索引是23,而不是页面是#3,依此类推...
我写了这个算法:
def _getIndexPage(index):
items = 7
page = 1
while items <= index:
items += 7
page += 1
return page
因此,当索引号大于或等于项目数时,我会在'items'上添加7,在'page'上添加1,否则,将返回'page'的最终结果。
这可以很好地完成工作,但是我从来没有真正感觉到这是正确的方法,所以我正在寻找一种简化的方法来实现这一点,还有更好的选择吗?
谢谢!
答案 0 :(得分:1)
一种编写算法和使每页项目数灵活的更短,更有效的方法:
const searchTextIndex = (req, res, db) => {
const { query, collection } = req.body;
db.collection(collection).find(
{ $text: { $search: query } }
)
.project({ score: { $meta: 'textScore' } })
.sort({ score: { $meta: 'textScore' } })
.toArray((err, result) => {
if (err) {
console.log(err);
res.send({ type: 'server_error' });
return;
}
console.log(result);
// need to be sure you send the response
return res.json(result);
})
}