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

for循环打印不出来arry[7]

为什么for循环要写成for(var i in myarr)才能把myarr[7]打印出来?

 写for(var i=0;i<length;i++)

        if(myarr[i][0]=="*") 

            document.write(myarr[i]+"<br>"); 只打印*  ***  ***,myarr[7]打印不出来

正在回答

5 回答

myarr[i][0]   这不是二维的吗? 定义得是一维啊

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

麓鹿不迷路 提问者

myarr[i][0]这选择的是每一个数组元素的第一个字符
2018-06-09 回复 有任何疑惑可以回复我~
#2

慕工程8645782 回复 麓鹿不迷路 提问者

这样啊,谢谢~
2018-06-12 回复 有任何疑惑可以回复我~

var arr=new Array();

 arr.length=7;

 for(var i=0;i<7;i++){

     for(var j='*';j.length<8;j+="*"){

         arr[i]=j;

         document.write(arr[i]+'<br>');

     }

 }


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

for(var j='*';j.length<8;j+="*"){     

         document.write(j+'<br>');

     }


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

小于等于你定义的数组的长度:i <= myarr.length

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

麓鹿不迷路 提问者

好像不是这个原因。因为我打印出来的length=8。所以arry[7]是包含在里面的,只是没有打印出来。在另一个问题中有位回答是这个原因“个人感觉是因为数组中不存在myarr[6]这个值,编译器可能读取到myarr[5]就终止了。”。不知道这么理解对不对。但for(var i in myarr)是什么意思呢?是判断当i在myarry里面?那i是1、2、3..还是每个值呢?
2018-05-06 回复 有任何疑惑可以回复我~
#2

刚刚就很帅 回复 麓鹿不迷路 提问者

考虑myarr[6]为空,你知道空值很难处理的。若你一定要用for循环,建议你把myarr[7]放入到初始定义的数组中,然后再循环,最后你还得实现排序成它想要的结果。个人觉得咱们都是小白,没必要浪费精力在这上面,你要真想练一练,考虑考虑如何实现9*9算法(小学的九九乘法口诀以及样式)的规则。
2018-05-07 回复 有任何疑惑可以回复我~
#3

麓鹿不迷路 提问者 回复 刚刚就很帅

嗯嗯,现在可能是还没学到那里,学到了估计就懂了。实现乘法口诀表听起来不错,是个好提议,谢谢哈!
2018-05-07 回复 有任何疑惑可以回复我~
#4

麓鹿不迷路 提问者 回复 刚刚就很帅

你把你回复的这句单独回答出来吧,我把这句采纳了。
2018-05-07 回复 有任何疑惑可以回复我~
查看1条回复

https://img1.sycdn.imooc.com//5aeeea5500014dec01960059.jpg条件写错了。应该是小于等于

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

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468190    人
  • 解答问题       21891    个

本课程从如何插入JS代码开始,带您进入网页动态交互世界

进入课程

for循环打印不出来arry[7]

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