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

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

for內新數組循環賦值,for外無法顯示,為何?已定義變量h,顯示undefined,為何?


<!DOCTYPE ?HTML>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>流程控制語句</title>
<script type="text/javascript">



//第一步把之前的數據寫成一個數組的形式,定義變量為 infos
var infos=[ ['小A','女',21,'大一'], ?['小B','男',23,'大三'],

? ?['小C','男',24,'大四'], ?['小D','女',21,'大一'],

? ?['小E','女',22,'大四'], ?['小F','男',21,'大一'],

? ?['小G','女',22,'大二'], ?['小H','女',20,'大三'],

? ?['小I','女',20,'大一'], ?['小J','男',20,'大三']]

//第一次篩選,找出都是大一的信息
var infos1=new Array();
var infos2=new Array();
for(var i=0,h=0;i<infos.length;i++)
{
? ?for(var j=0;j<infos[0].length;j++)
? ?{ ? ?
? ? ? ?if(infos[i][j]=='大一')
? ? ? ?{ ?
? ? ? ? ? ? ?
? ? ? ? ? ?infos1[h]=infos[i];//這樣賦值不可以嗎?
? ? ? ? ? ?document.write(infos1[h]+"<br>");
? ? ? ? ? /* infos1.push(infos[i]);
? ? ? ? ? ?document.write(infos1[h]+"<br>");//屏蔽infos1[h]=infos[i],下面句子中h顯示undefined,怎么回事?*/
? ? ? ?}
? ? ? ?else
? ? ? ?{
? ? ? ? ? continue;
? ? ? ?}
? ?}
?
}
document.write(infos1+"<br>");//為什么顯示不出這個數組?
document.write(infos1.length+"<br>"); //為什么結果顯示為1?
//第二次篩選,找出都是女生的信息 ?
for(var i=0,h=0;i<infos1.length;i++)
{
? ?for(var j=0;j<infos1[0].length;j++)
? ?{ ? ?
? ? ? ?if(infos1[i][j]=='女')
? ? ? ?{ ?
? ? ? ? ? ? ?
? ? ? ? ? ?infos2[h]=infos1[i];
? ? ? ? ? document.write(infos2[h][0]+"<br>");
? ? ? ?
? ? ? ?}
? ? ? ?else
? ? ? ?{
? ? ? ? ? continue;
? ? ? ?}
? ?}
?
}
</script>
</head>
<body>
</body>
</html>




正在回答

3 回答

你h忘記自加了

infos1[h]=infos[i];
document.write(infos1[h]+"<br>");
h++;

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

kuban

只有h沒自加的問題,自加后你注釋的也正確執行,沒有錯誤的
2016-05-31 回復 有任何疑惑可以回復我~
#2

大只茹 提問者

恩,可以啦!不過還有個問題, infos1[h]=infos[i]; document.write(infos1[h]+"<br>"); h++; 刪掉infos1[h]=infos[i];直接運行后面的,會出現undefined,可是在一開始的 for(var i=0,h=0;i<infos.length;i++)里面就定義了h??!
2016-05-31 回復 有任何疑惑可以回復我~
#3

kuban 回復 大只茹 提問者

這個undefined是指infos1[0]的值由于空值返回的undefined,不是未定義,未定義的直接就報錯停止啥都不輸出了,不信你把h換成a試試
2016-05-31 回復 有任何疑惑可以回復我~

然后你這代碼實在是亂的可以,沒法幫你改,建議你從新寫;

<script type="text/javascript">


?//第一步把之前的數據寫成一個數組的形式,定義變量為 infos

var infos=[["小a","女",21,"大一"],["小b","女",21,"大一"],["小c","女",21,"大一"],["小d","女",21,"大一"],["小e","女",21,"大一"],["小f","女",21,"大一"],["小g","女",21,"大一"],["小h","女",21,"大一"],["小i","女",21,"大一"],["小j","女",21,"大一"]];

?//第一次篩選,找出都是大一的信息

?for(var i=0;i<infos.length;i++){

? ? ?var jr=infos[i][3];

? ? ?var wx=infos[i][1];

? ? ?if(wx=="女" && jr=="大一"){

? ? ? ? ?document.write(infos[i]+"<br/>");

? ? ?}

?}?

</script>

我數組里的信息是復制的一樣的,因為怕麻煩,但是結果是對的,自己看看吧

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

大只茹 提問者

非常感謝,代碼我看到了,非常簡單,但是上面的代碼雖然亂,是我自己寫的,碰到很多的問題,所以想解決~
2016-05-31 回復 有任何疑惑可以回復我~

首先第一個問題,你定義數組應該用大括號,而不是中括號

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

舉報

0/150
提交
取消

for內新數組循環賦值,for外無法顯示,為何?已定義變量h,顯示undefined,為何?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

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

公眾號

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