看来有必要解释一下: 在JavaScript中没有多维数组的概念,但说JavaScript中支持多维(包括二维)数组,这句话相对于:可以通过数组里的元素是数组来模拟多维数组…如楼主你的 var arr = [1,23,344,544,[23,12,12,21,12,[21,32,32,32]]]; 说不支持的解说:不能通过构造函数直接生成多维数组,如var score=new Array(10)(10),是错误的。 我二楼里面说的那句话,是“编程浪子”问脚本专家时的回答…
在JavaScript中没有多维数组的概念,但是JavaScript中支持多维(包括二维)数组。 可以模拟实现,代码如下: var arr1=new Array(3); var arr1[0]=new Array(3); var arr1[0][0]=new Array(3); 这样就实现了三维数组。调用可以直接写成这样即可:arr1[0][0][0]
自己试一下下面的,应该弹出 3<script> var arr = new Array([[1,2],[3,4]],[[5,6],[7,8]]); alert(arr[0][1][0]); </script>
arr = [1,23,344,544,[23,12,12,21,12,[21,32,32,32]]]
<script language="javascript">
<!--
var arr = [1,23,344,544,[23,12,12,21,12,[21,32,32,32]]];
for(var i=0;i <arr.length;i++)
{
if(arr[i].length)
{
for(var j=0;j <arr[i].length;j++)
{
if(arr[i][j].length)
{
// for(var k=0;k <arr[i][j] <length;k++) //err: "<"
for(var k=0;k <arr[i][j].length;k++)
{
alert(arr[i][j][k]);
}
}
else
{
alert(arr[i][j]);
}
}//err:Lost"}"
}
else
{
alert(arr[i]);
}
}
//-->
</script>
var arr = [1,23,344,544,[23,12,12,21,12,[21,32,32,32]]]; for(var i=0;i <arr.length;i++)
{
for(var j=0;j <arr[i].length;j++)
{
alert(arr[i][j]);//最后一个是:21,32,32,32 下一个循环打印
for(var k=0;k <arr[i][j].length;k++)
{
alert(arr[i][j][k]);
}
}
}
for(var i=0;i <arr.length;i++)
{
if(arr[i].length) //if的条件只能是true 或者false 的表达式
{
for(var j=0;j <arr[i].length;j++)
{
if(arr[i][j].length) //if的条件只能是true 或者false的表达式
{
for(var k=0;k <arr[i][j] <length;k++) //这里 k <arr[i][j] <length 应该改为k <arr[i][j].length
{
alert(arr[i][j][k]);
}
}
else //if的条件只能是true 或者false的表达式
{
alert(arr[i][j]);
}
}
else //if的条件只能是true 或者false的表达式
{
alert(arr[i]);
}
}
在JavaScript中没有多维数组的概念,但说JavaScript中支持多维(包括二维)数组,这句话相对于:可以通过数组里的元素是数组来模拟多维数组…如楼主你的 var arr = [1,23,344,544,[23,12,12,21,12,[21,32,32,32]]];
说不支持的解说:不能通过构造函数直接生成多维数组,如var score=new Array(10)(10),是错误的。
我二楼里面说的那句话,是“编程浪子”问脚本专家时的回答…
可以模拟实现,代码如下:
var arr1=new Array(3);
var arr1[0]=new Array(3);
var arr1[0][0]=new Array(3);
这样就实现了三维数组。调用可以直接写成这样即可:arr1[0][0][0]
var arr = new Array([[1,2],[3,4]],[[5,6],[7,8]]);
alert(arr[0][1][0]);
</script>
可是改正书写错误之后,还是不能执行代码..我试了一下,这个数组:[1,23,344,544,[23,12,12,21,12,[21,32,32,32]]]如果直接给定模拟数组的下标,倒是可以读出来.
如:alert(arr[4][5][3]);但是为什么我的那个循环就不能执行呢?是那里写错了?我应该怎么写才是正确的呢?期待朋友们能给抽空给小弟一个答复..能给我一个范例..或者指出我的错误所在!小弟在些谢过!
var arr = [1,23,344,544,[23,12,12,21,12,[21,32,32,32]]]; for(var i=0;i <arr.length;i++)
{
for(var j=0;j <arr[i].length;j++)
{
alert(arr[i][j]);//最后一个是:21,32,32,32 下一个循环打印 for(var k=0;k <arr[i][j].length;k++)
{
alert(arr[i][j][k]); //这里逐个打印21 32 32 32
}
}
} 楼主你还想咋样呢?说说看…或许能帮上忙…
以下的代码可以依次的显示所定义的模拟的三维数组(为什么用"模拟"?因为前面的很多朋友说了,JS里并不支持真正的数组)
希望在以后的学习路上能与大家有更多的交流! var arr = [1,23,344,544,[23,12,12,21,12,[21,32,32,32]]];
for(var i=0;i<arr.length;i++)
{
if(arr[i].length)
{
for(var j=0;j<arr[i].length;j++)
{
if(arr[i][j].length)
{
for(var k=0;k<arr[i][j].length;k++)
{
alert(arr[i][j][k]);
}
}
else
{
alert(arr[i][j]);
}
}
}
else
{
alert(arr[i]);
}
}以上就是全部的代码,,希望对和我一样的初学者有帮助!
其实和刚开始发上来的代码没有什么区别,就是因为少了"}"符号;和把"."误写成了"<".
在这里也希望大家不要和我犯同样的错误!