KAO 你骗得我好辛苦我以为是数组的问题呢 原来是你的程序的问题 你根本就没有定义下标为0的值,你在FOR里面怎么能访问呀<Script language='javascript'> //--------注释一 var j; for (j=0;j<10;j++){ if (prvarr[j+1].id==3){ //这样还差不多 document.write (prvarr[j+1].name); } } </script>
<Script language='javascript'> //--------注释一 var j; for (j=1;j<=10;j++){ //你的程序应该是改为从1开始的, if (prvarr[j].id==3){ document.write (prvarr[j].name); } } </script> <br><Script language='javascript'> //--------注释二 var j; for (j=1;j<=10;j++){//你的程序应该是改为从1开始的, if (j==3){ document.write (prvarr[j].name); } } </script>
数组下标出错 <SCRIPT LANGUAGE=javascript> <!-- prvarr= new Array(31); prvcnt=31;prvarr[0]=new prv(1,'辽宁');prvarr[1]=new prv(2,'黑龙江');prvarr[2]=new prv(3,'吉林');prvarr[3]=new prv(4,'河北');prvarr[4]=new prv(5,'北京');prvarr[5]=new prv(6,'上海');prvarr[6]=new prv(7,'天津');prvarr[7]=new prv(8,'山西');prvarr[8]=new prv(9,'内蒙古');prvarr[9]=new prv(10,'江苏');prvarr[10]=new prv(11,'浙江');prvarr[11]=new prv(12,'安徽');prvarr[12]=new prv(13,'福建');prvarr[13]=new prv(14,'江西');prvarr[14]=new prv(15,'山东');prvarr[15]=new prv(16,'河南');prvarr[16]=new prv(17,'湖北');prvarr[17]=new prv(18,'湖南'); function prv(id,name) {this.id=id;this.name=name;} --> </SCRIPT> <Script language='javascript'> //--------注释一 var j; for (j=0;j<=10;j++){ if (prvarr[j].id==3){ document.write (prvarr[j].name); } } </script> <br><Script language='javascript'> //--------注释二 var j; for (j=0;j<=10;j++){ if (j==3){ document.write (prvarr[j].name); } } </script>
我一看开头初始化那么多行就难受!计算机最适宜干的就是重复工作,初始化部分为什么要用手工去改数组的下标等内容,麻烦且容易错!要是调整顺序呢?好在中国只有31个省,如果象美国50个州,难道你也这么干?用下面的7行代码代替那些重复行吧:var aTemp = [ '辽宁','黑龙江','吉林','河北','北京','上海','天津','山西','内蒙古','江苏','浙江','安徽','福建','江西','山东','河南','湖北','湖南' ];var prvarr = new Array ( aTemp.Length );initPrvarr ( aTemp, prvarr ); delete aTemp; //释放aTemp占用的资源function initPrvarr ( aName, aTarget ) { for ( var i = 0; i < aName.length; aTarget[i]=new prv(i+1,aName[i]), i ++ ); }function prv(id,name) {this.id=id;this.name=name;}
你骗得我好辛苦我以为是数组的问题呢
原来是你的程序的问题
你根本就没有定义下标为0的值,你在FOR里面怎么能访问呀<Script language='javascript'>
//--------注释一
var j;
for (j=0;j<10;j++){
if (prvarr[j+1].id==3){ //这样还差不多
document.write (prvarr[j+1].name);
}
}
</script>
<Script language='javascript'>
//--------注释一
var j;
for (j=1;j<=10;j++){ //你的程序应该是改为从1开始的,
if (prvarr[j].id==3){
document.write (prvarr[j].name);
}
}
</script>
<br><Script language='javascript'>
//--------注释二
var j;
for (j=1;j<=10;j++){//你的程序应该是改为从1开始的,
if (j==3){
document.write (prvarr[j].name);
}
}
</script>
<SCRIPT LANGUAGE=javascript>
<!--
prvarr= new Array(31);
prvcnt=31;prvarr[0]=new prv(1,'辽宁');prvarr[1]=new prv(2,'黑龙江');prvarr[2]=new prv(3,'吉林');prvarr[3]=new prv(4,'河北');prvarr[4]=new prv(5,'北京');prvarr[5]=new prv(6,'上海');prvarr[6]=new prv(7,'天津');prvarr[7]=new prv(8,'山西');prvarr[8]=new prv(9,'内蒙古');prvarr[9]=new prv(10,'江苏');prvarr[10]=new prv(11,'浙江');prvarr[11]=new prv(12,'安徽');prvarr[12]=new prv(13,'福建');prvarr[13]=new prv(14,'江西');prvarr[14]=new prv(15,'山东');prvarr[15]=new prv(16,'河南');prvarr[16]=new prv(17,'湖北');prvarr[17]=new prv(18,'湖南');
function prv(id,name) {this.id=id;this.name=name;} -->
</SCRIPT> <Script language='javascript'>
//--------注释一
var j;
for (j=0;j<=10;j++){
if (prvarr[j].id==3){
document.write (prvarr[j].name);
}
}
</script>
<br><Script language='javascript'>
//--------注释二
var j;
for (j=0;j<=10;j++){
if (j==3){
document.write (prvarr[j].name);
}
}
</script>
delete aTemp; //释放aTemp占用的资源function initPrvarr ( aName, aTarget ) {
for ( var i = 0; i < aName.length; aTarget[i]=new prv(i+1,aName[i]), i ++ );
}function prv(id,name) {this.id=id;this.name=name;}