关于while和pop
为什么是用while循环来判断pop?而不是用if?而且while循环不是如果不增加条件中所用变量的值,该循环永远不会结束,可能导致浏览器崩溃吗?还有一个不懂的地方,就是这里:
while(balls.length > count){ balls.pop(); }
不是说从count到balls.length-1的小球都是可以删掉的,可是pop不是只能删除数组最后一个元素吗?可以删掉的小球难道就只有一个吗,不会有两个三个?
我把我这里的代码贴一下:
function updateBalls(){ for( var i = 0 ; i < balls.length ; i++){ balls[i].x += balls[i].vx; balls[i].y += balls[i].vy; balls[i].vy += balls[i].g; if( balls[i].y >= WINDOW_HEIGHT - RADIUS ){ balls[i].y = WINDOW_HEIGHT - RADIUS balls[i].vy = -balls[i].vy*0.6; } var count = 0; //记录保留在画布中小球的数量 if( balls[i].x + RADIUS > 0 && balls[i] - RADIUS < WINDOW_WIDTH ){ //这个序号为i的小球仍然在画布中 balls[count++] = balls[i]; } } while(balls.length > count){ balls.pop(); } }