快捷导航
查看: 161|回复: 9

[求助] 为什么只弹了一次?

[复制链接]
发表于 2017-1-11 17:25:19 | 显示全部楼层 |阅读模式
本帖最后由 antzone 于 2017-1-11 18:29 编辑

var aaa = [1, 1, 2, 3, 3, ];
  var thisAaa;
  var count1 = 0;
  for (var index = 0; index < aaa.length; index++) {
    thisAaa = aaa[index];
    for (var index = 0; index < aaa.length; index++) {
      if (thisAaa == aaa[index]) {
        count1++;
      }
    }
    alert(thisAaa + "----" + count1);
  }

为什么只弹了一次?
发表于 2017-1-11 17:29:49 | 显示全部楼层
把i修改成index,dz程序会把i解析成斜体
代码可能会出现错误,你先修改一下,我帮你解答
 楼主| 发表于 2017-1-11 18:17:31 | 显示全部楼层
落叶 发表于 2017-1-11 17:29
把i修改成index,dz程序会把i解析成斜体
代码可能会出现错误,你先修改一下,我帮你解答

谢谢 我知道问题出在哪了
发表于 2017-1-11 18:47:34 | 显示全部楼层
你的问题把我难住了,楼主能解释一下为什么吗
为什么循环了,却只会弹出一次呢
 楼主| 发表于 2017-1-11 19:58:53 | 显示全部楼层
没有最好 发表于 2017-1-11 18:47
你的问题把我难住了,楼主能解释一下为什么吗
为什么循环了,却只会弹出一次呢

外层循环和内层循环的计数器名字一样了,所以运行完内层循环,i的值已经等于aaa.length了。
  要把里面循环的计数器改个名字,改成 :
            for (var j = 0; j < aaa.length; j++)
发表于 2017-1-11 20:16:12 | 显示全部楼层
fc0511 发表于 2017-1-11 19:58
外层循环和内层循环的计数器名字一样了,所以运行完内层循环,i的值已经等于aaa.length了。
  要把里面 ...

这个题目好,给我一点触动
因为内层循环也是用var声明了,以为内存不会对外层的有影响
看来还是不行,毕竟es5中没有块级作用域,还是对外层的产生了影响
不错的题目,学习到了不少东西
发表于 2017-1-12 09:47:58 | 显示全部楼层
这样的题目好,多来点
发表于 2017-1-13 09:07:49 | 显示全部楼层
嗯,学习到了
发表于 2017-1-14 10:03:46 | 显示全部楼层
第一个对作用域的理解
第二个是对for循环执行顺序的理解
发表于 2017-1-31 19:29:12 | 显示全部楼层
明白了,谢谢了

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们|手机版|小黑屋| 蚂蚁部落 ( 鲁ICP备10022556号-3 )

GMT+8, 2017-2-23 17:19 , Processed in 0.088259 second(s), 18 queries .

Powered by Discuz! X3.2 Licensed

Copyright © 2012-2017 Design: 蚂蚁部落

快速回复返回顶部 返回列表