嗜甜怪
2016-10-26 21:40
var myarr=new Array(3)
for(var i=0;i<3;i++){
myarr[i]=new Array()
for(var j=0;j<5;j++){
myarr[i][j]=i*j
}
}
<!DOCTYPE html>
<html>
<head>
<title>浏览器对象</title>
<meta charset="utf-8"/>
</head>
<body>
<script type="text/javascript">
var myarr=new Array(); //新建一个数组,名为myarr
//将i,j初始为0,我好解释些
for(var i=0;i<4;i++)
{
myarr[i]=new Array();
//将数组myarr的第i项,创建一个数组
for(var j=0;j<6;j++)
{
myarr[i][j]=(i+1)*(j+1);
//数组myarr的第i项是数组,所以他的第j项开始赋值,赋值为(i+1)*(j+1)
document.write("myarr["+(i+1)+"]["+(j+1)+"]的值:"+myarr[i][j]+"<br>");
}
}
/*
这是一个二维数组的创建过程,先创建一个以为数组myarr[第一项,第二项,第三项,第四项]
然后第一项也是一个数组myarr[0][]=[第一行第一列,第一行第二列,。。。。]
最后得到的数组时[ [第一行第一列,第一行第二列,。。。。。] [第二行第一列] ] ]
*/
</script>
</body>
</html>
数组的下标是从0开始的,按你这个是代码写法应该是这样:
var myarr=new Array();
for(var i=1;i<4;i++)
{
myarr[i-1]=new Array();//从mymrr[0]开始
for(var j=1;j<=6;j++) //如果是<6的话,就只有5个值了(3行5列)
{
myarr[i-1][j-1]=(i-1)*(j-1);//从0开始(当i=1时、j=1时,myarr[0][0]=0*0
document.write("myarr["+(i--)+"]["+(j--)+"]的值:"+myarr[i][j]+"<br>");
}
}
好麻烦啊,其实i、j就该从0开始
我的代码,仅供参考
<script type="text/javascript">
var myarr=new Array();
for(var i=0;i<3;i++){
myarr[i]=new Array();
document.write(i+"<br>");
for(var j=0;j<6;j++){
myarr[i][j]=i*j;
}
}
document.write("数组长度为:"+myarr.length+"<br>");
for(var i=0;i<myarr.length;i++){
document.write("NO."+i+":"+myarr[i]+"<br>");
}
</script>
var myarr=new Array();
for(var i=1;i<4;i++)
{
myarr[i]=new Array();
for(var j=1;j<6;j++)
{
myarr[i][j]=i*j;
document.write("myarr["+i+"]["+j+"]的值:"+myarr[i][j]+"<br>");
}
}
应该是这个 发错啦不好意思
写的 不对吧 myarr[i]已经是一个值了 怎么还new array
JavaScript进阶篇
468192 学习 · 21891 问题
相似问题