关于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();
}
}