查找项目索引的正确页面

时间:2018-09-23 23:43:06

标签: python python-3.x python-2.7

很抱歉,我找不到合适的标题。

在我正在处理的用户中,有一个带有选项列表的分页菜单,但是此分页菜单每页只能显示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'的最终结果。

这可以很好地完成工作,但是我从来没有真正感觉到这是正确的方法,所以我正在寻找一种简化的方法来实现这一点,还有更好的选择吗?

谢谢!

1 个答案:

答案 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);
    })
}