!pages[page]的疑惑
来源:7-6 Vue项目首页 - 图标区域逻辑实现
精慕门8222655
2018-11-20
this.iconList.forEach((item,index) => {
const page = Math.floor(index / 8)
if (!pages[page]) {
pages[page] = []
}
pages[page].push(item)
})
老师你好。
forEach都已经确定有第8个item了,const page = 1才会生成第二页,
这样的话if(!pages[page])永远都不为真的吧。
无论你是第二页的第一个图标(index=8)还是第三页的第一个图标(index=16),有这个item才会显示,没这个这个item的话pages[1],pages[2]这些判断都不会存在了,因为index的关系,page都不会等于这些数字,所以这个判断是不是多余了?
3回答
-
Amor丶安于命
2018-11-23
pages就是个中间数据,先定义pages=[];但是里面没有任何值,pages[0]和pages[1]都不存在。
const page = Math.floor(index / 8),里面page获取的是当前的数据应该在第几页,比如现在的page=0,那么现在的数据item应该在第一页,那么我们应该给pages[0]这个数组里push进去item,但是如果你没有定义pages[0]=[];肯定是会报pages[0]不存在,所以你无法push进去数据的。
所以
if (!pages[page]) { pages[page] = [] } pages[page].push(item)
里面的if (!pages[page])就是判断pages数组里是否存在page这一页,如果存在就直接往这一页里push item数据,不存在就先设置pages[当前页码]=[],然后再往这一页里push item数据
642019-07-11 -
慕函数2132411
2018-11-21
因为page应该是一直存在的 所以这个 !pages[page] 是因为什么成立的呢。。
如果把判断 去掉 会显示push没有定义,这是因为什么呢 0.0
012018-11-23 -
Dell
2018-11-20
自己拿个笔记本,再走一遍,不多余的
00
相似问题
回答 2
回答 1