这样转二维数组的原理是什么

  computed:{
   categoryArr() {
    //获取到foods
    const {foods} = this
    //准备二维数组
    const arr = [];
    let minArr = [];
    //遍历foods
    foods.forEach(category => {
      //如果小数组满了,创建一个新的小数组(所以上班创建minArr不用const而是用let)
      if(minArr.length === 8){
        minArr = [];
      }
      //如果minArr是空的,将小数组保存到大数组中
      if(minArr.length === 0){
        arr.push(minArr)
      }
      //将当前分类数据保存到小数组中
      minArr.push(category)
    });
    return arr;
   }
  }

在minArr长度为0的时候push到二维数组每次不都应该push了一个空数组过去吗

1、新建一个minArr数组

2、此时minArr长度是0,存入arr数组中。

3、每次循环,都往minArr中保存一个数据。

4、minArr长度等于8,也就是arr的第一个元素的长度等于8。

5、此时,再重新给minArr创建一个数组。

6、此时新数组长度是0

7、在重复步骤2。一直循环到结束为止

[[]]→[[1]]→[[12]]→[[1,2,3]]→[[1,2,3,4]]→[[1,2,3,4,5]]→[[1,2,3,4,5,6]]→[[1,2,3,4,5,6,7]]→[[1,2,3,4,5,6,7,8]]→[[1,2,3,4,5,6,7,8],[]]→[[1,2,3,4,5,6,7,8],[1]]→[[1,2,3,4,5,6,7,8],[1,2]]→。。。