为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript分页算法原理是什么

JavaScript分页算法原理是什么

智慧大石 2018-09-08 10:31:56
上面图片的实现分页算法的代码有点看不明白?一、const声明的page不是常量吗?forEach每次循环遍历的话,page不是要改变吗?但是为啥没有报错,是不是我理解错了,还是我的知识点盲区?二、整体的算法有点看不明白,请各位大佬帮忙指点一下,谢谢代码:pages(){const=[]this.iconList.forEach((item,index) => {    const page =Math.floor(index/8)    if(!pages[page]){     pages[page]=[]     }     pages[page].push(item) })return pages}
查看完整描述

2 回答

?
跃然一笑

TA贡献1826条经验 获得超6个赞

每次循环遍历的const page的作用域只是当前的箭头函数,函数执行完生命周期就结束了;因此不存在重复声明的问题;

整体逻辑很简单啊,没有什么算法;

pages(){    // 最终分页结果
    const pages=[]    // 遍历icon列表
    this.iconList.forEach((item,index) => {        // 每8条为一页;例:0-7为第一页
        // page为当前页码;
        const page =Math.floor(index/8)        // 判断pages中当前页的存储数组是否已声明,未声明则声明当前页为数组格式;
        if(!pages[page]){
            pages[page]=[]
        }        // 将当前icon信息放入对应的页码数组中;
        pages[page].push(item)
    })    // 返回分页之后的icon集合;
    return pages
}


查看完整回答
反对 回复 2018-09-09
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

1: forEach的作用域里面的const 不涉及修改

2: index传入为0 1 2.... 他这边8个处理一次 0-8 都是处理为0
最终格式应该为:

[{
  X :...,
   ...
},{},{}]


查看完整回答
反对 回复 2018-09-09
  • 2 回答
  • 0 关注
  • 1889 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信