亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為啥我的數組長度是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下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號