老师这段代码不明白

来源:2-8 Vue项目首页 - 图标区域逻辑实现

慕沐2093547

2020-09-07 17:46:57

  if (!pages[page]) {
                    pages[page] = [];
                }为什么要加这段代码


写回答

1回答

好帮手慕言

2020-09-07

同学你好,这里是判断pages[page]是否有值,没有值的话,!pages[page]转成布尔值为true, 就会执行if语句, 将pages[page]初始化为空数组。

整体可以参考下方理解:

1、可以先结合源码打印下pages,查看下最终的输出的结果

http://img.mukewang.com/climg/5f560bd2098c630905570368.jpg

打印结果如下: pages数组中有两项,也分别都是数组,一个数组中有8项,另一个数组中有1项。

http://img.mukewang.com/climg/5f560c130914f7fe05420084.jpg

2、因为我们并不确定pages数组中一共有多少个数组,所以一开始默认设置pages是一个空数组,然后通过计算的page值,确定pages中具体有几个数组。

因为pages[page]一开始是没有值的,只有初始化为空数组后,才可以使用数组的push方式,向数组中添加数据。

当pages[page]有值后,不满足if条件,就会跳过if语句,直接向数组中添加数据了

同学可以结合视频再理解下,如果我的回答帮到了你,欢迎采纳,祝学习愉快~

1

0 学习 · 10739 问题

查看课程