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

为啥我的数组长度是1啊?大神指教 谢谢

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>第三章习题-4</title>

</head>


<body>

<script>


function chengfa(want){

var show = new Array(want);

alert(show.length);

/*for(var i=1;i<show.length+1;i++)

   {

      show[i-1]=want*i;

   document.write(want+"*"+i+" = "+show[i-1]+"<br>");

   }*/

}


var Num;

while((Num=prompt("请输入数字",12))!=-1)

{

while(isNaN(Num)==true)

{

alert("请重新输入!");

var Num=prompt("请输入有效数字",12);

}

if(Num==-1)

{

break;

}


chengfa(Num);

}


</script>

</body>

</html>


正在回答

3 回答

不知道你是怎么想的,这么混乱。首先,12不是显示的,这是prompt(参数1,参数2)--第二个参数就是框里默认的显示值,还有,一次不要太多显示框,不然你会疯,你这就是一个除了-1,就不会终止的死循环,你前面都判断了,不是-1就会一直循环,所以出来循环时,他得知必然就是-1,所以意义何在?

还有你定义的函数的参数就是数组的长度,所以你直接判断want这个参数是否传进去就可以了,我不知道你是否想要这样,你自己看看吧。有问题再问吧。

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>window对象</title>

<script type="text/javascript">

function chengfa(want){

var show = new Array(want);

alert(want);

for(var i=1;i<show.length+1;i++)

   {

        show[i-1]=want*i;

     document.write(want+"*"+i+" = "+show[i-1]+"<br>");

   }

}

var Num;

while((Num=prompt("请输入数字"))==null)

{

     var Num=prompt("请输入有效数字");

}

alert(Num);

chengfa(Num);


</script>

</head>

<body>

<form>

<input type="button" value="点击我,打开新窗口"  />

</form>

</body>

</html>

我不知道你在做什么,所以我稍微修改了一下,这是我的代码;

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

慧女神 提问者

谢谢你的答复 我已经找到问题所在了 因为prompt得到的是字符串并不是数值,所以Num只是字符串“12”,不是以数值12当作参数传给函数chengfa()的。所以只要在调用函数chengfa()之前将Num转换成数值就行啦,即Num=Number(Num) 他达到的效果就是输入n,输出n*1、n*2.......n*n结束
2016-04-25 回复 有任何疑惑可以回复我~

如果你想要自定义增加数组的长度,直接用show.length=Num就可以了呀。

.length不仅是返回数组的长度,也可以设定数组的长度

    var show = new Array();
    show.length = Num;
    alert(show.length);
G
M
T
Detect languageAfrikaansAlbanianArabicArmenianAzerbaijaniBasqueBelarusianBengaliBosnianBulgarianCatalanCebuanoChichewaChinese (Simplified)Chinese (Traditional)CroatianCzechDanishDutchEnglishEsperantoEstonianFilipinoFinnishFrenchGalicianGeorgianGermanGreekGujaratiHaitian CreoleHausaHebrewHindiHmongHungarianIcelandicIgboIndonesianIrishItalianJapaneseJavaneseKannadaKazakhKhmerKoreanLaoLatinLatvianLithuanianMacedonianMalagasyMalayMalayalamMalteseMaoriMarathiMongolianMyanmar (Burmese)NepaliNorwegianPersianPolishPortuguesePunjabiRomanianRussianSerbianSesothoSinhalaSlovakSlovenianSomaliSpanishSundaneseSwahiliSwedishTajikTamilTeluguThaiTurkishUkrainianUrduUzbekVietnameseWelshYiddishYorubaZulu
AfrikaansAlbanianArabicArmenianAzerbaijaniBasqueBelarusianBengaliBosnianBulgarianCatalanCebuanoChichewaChinese (Simplified)Chinese (Traditional)CroatianCzechDanishDutchEnglishEsperantoEstonianFilipinoFinnishFrenchGalicianGeorgianGermanGreekGujaratiHaitian CreoleHausaHebrewHindiHmongHungarianIcelandicIgboIndonesianIrishItalianJapaneseJavaneseKannadaKazakhKhmerKoreanLaoLatinLatvianLithuanianMacedonianMalagasyMalayMalayalamMalteseMaoriMarathiMongolianMyanmar (Burmese)NepaliNorwegianPersianPolishPortuguesePunjabiRomanianRussianSerbianSesothoSinhalaSlovakSlovenianSomaliSpanishSundaneseSwahiliSwedishTajikTamilTeluguThaiTurkishUkrainianUrduUzbekVietnameseWelshYiddishYorubaZulu
Text-to-speech function is limited to 100 characters
0 回复 有任何疑惑可以回复我~
#1

慧女神 提问者

谢谢你的答复 我已经找到问题所在了 因为prompt得到的是字符串并不是数值,所以Num只是字符串“12”,不是以数值12当作参数传给函数chengfa()的。所以只要在调用函数chengfa()之前将Num转换成数值就行啦,即Num=Number(Num) 他达到的效果就是输入n,输出n*1、n*2.......n*n结束
2016-04-25 回复 有任何疑惑可以回复我~

我在函数中添加了alert(show[0]);发现会弹出12,我感觉应该是新建数组的时候只是把这个值当成第一个索引的值,没有新建相应长度的数组,解决的办法没有想到,说一下我的理解

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

慧女神 提问者

谢谢你的答复 我已经找到问题所在了 因为prompt得到的是字符串并不是数值,所以Num只是字符串“12”,不是以数值12当作参数传给函数chengfa()的。所以只要在调用函数chengfa()之前将Num转换成数值就行啦,即Num=Number(Num) 他达到的效果就是输入n,输出n*1、n*2.......n*n结束
2016-04-25 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为啥我的数组长度是1啊?大神指教 谢谢

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