为了账号安全,请及时绑定邮箱和手机立即绑定

balls[cnt++]=balls[i]的详细解释或其它例子

var cnt=0
for(var i=0;i<balls.length;i++){
    if(balls[i].x+radius>0&&balls[i].x-radius<canvasWidth){
        balls[cnt++]=balls[i];
    }
}

我知道老师的解释是,小球数组中的第0个到cnt-1个是在canvas画布中,可是这种数组的赋值怎么解释呢?就是balls[cnt++]=balls[i]这种数组赋值方式

正在回答

4 回答

++i与i++不在赋值运算中的话,应该是相同的,都是自增,没有运算前运算后

0 回复 有任何疑惑可以回复我~

假设屏幕中有5个小球①②③④⑤,第五个小球在屏幕内,故有


balls[0] ☓    不符合if语句

balls[1] ☓    不符合if语句

balls[2] ☓    不符合if语句

balls[3] ☓    不符合if语句

balls[4] √     符合if语句

故有balls[0] = balls[4]

现在数组的样子就为⑤②③④⑤,还是有5个元素。但是我们想做的是将屏幕之外的另外4个小球都删除,只剩下一个元素。即使第5个小球(balls[4])是在屏幕内的,但是它已经复制给了balls[0],覆盖了第一个元素,所以,只要将balls[0]之后的元素全部删除就可以了。

让我们来执行

while(balls.length > cnt)     balls.pop();

balls.length = 5 cnt = 0

5 > 0 pop()

balls.length = 4 cnt = 0

4>0 pop()

balls.length = 3 cnt = 0

3>0 pop()

balls.length = 2 cnt = 0

2>0 pop()

balls.length = 1 cnt = 0

1>0 pop()

0 不大于 0 循环结束。我们的数组中只剩一个在屏幕里的小球,其他的都被删除了。

不知道我的理解是否有差错,希望可以帮助您。


2 回复 有任何疑惑可以回复我~

看了你的博客后,把我给绕晕了,看了很久都没看明白

0 回复 有任何疑惑可以回复我~
#1

标标哟 提问者

。。。恩 我也有点晕 不过 都是自己做的实验结果
2017-04-04 回复 有任何疑惑可以回复我~
#2

qq_春花花_0 回复 标标哟 提问者

其实我觉得你总结的很好啊,只是我比较笨而已
2017-04-05 回复 有任何疑惑可以回复我~
#3

标标哟 提问者 回复 qq_春花花_0

不要这么说自己,只要努力就会有收获
2017-04-05 回复 有任何疑惑可以回复我~

自己强答一波,相关思路我发到自己的博客了╮(╯▽╰)╭,大家可以看看

http://icke.site/2017/03/10/20170310-JavaScript-arr[i++]/

0 回复 有任何疑惑可以回复我~
#1

慕后端9417217

你的博客好好看耶!是怎么做的
2017-08-17 回复 有任何疑惑可以回复我~
#2

标标哟 提问者 回复 慕后端9417217

https://github.com/yscoder/hexo-theme-indigo。我使用的是这个主题的博客,不过博客颜色是我自己更改的。
2017-08-19 回复 有任何疑惑可以回复我~
#3

慕后端9417217 回复 标标哟 提问者

好(´๑•_•๑)谢谢你,你是用hexo搭建的吗为什么博客的网址不是github.io叻(。・ω・。)ノ♡
2017-08-19 回复 有任何疑惑可以回复我~
#4

标标哟 提问者 回复 慕后端9417217

对 用hexo, github.io可以绑定域名的。这个域名是我自己在阿里云买的,你可以查github.io绑定域名
2017-08-19 回复 有任何疑惑可以回复我~
#5

慕后端9417217 回复 标标哟 提问者

好谢谢你哦你改的颜色我好喜欢哈哈,我去换主题嘻嘻~
2017-08-19 回复 有任何疑惑可以回复我~
查看2条回复

举报

0/150
提交
取消

balls[cnt++]=balls[i]的详细解释或其它例子

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信