问答详情
源自:5-1 性能优化

为什么一定要用balls.pop()呢

为什么用balls,shift()不可以呢,显示的效果就会差很多呢?最开始不是push()进去的吗,这个已经是插入最后了,用pop()岂不是把刚插入的又删掉了吗

提问者:Pengweb 2015-07-27 23:57

个回答

  • 哦哦哒
    2015-08-21 08:58:28
    已采纳

    由于x轴方向上的速度不一致,所以不一定在前面的一定先出去,所以用shift是不可取的,其次,老师之所以用pop是因为已经确定了显示区域内的小球一定是count个

  • Qzhor
    2016-08-24 17:58:19

      if (balls[i].x+RADIUS>0 && balls[i].x-RADIUS<WINDOW_WIDTH) {
       balls[cnt++]=balls[i];
      }

    研究下这句话,老师把区域内的小球又重新放到了balls的前CNT个,相当于覆盖,所以屏幕外的就是 

    while (balls.length>cnt) {
      balls.pop();
     } balls[cnt]这个下标之后的,依次删掉