方法一:直接定义并且初始化,这种遇到数量少的情况可以用
var _TheArray = [["0-1","0-2"],["1-1","1-2"],["2-1","2-2"]]

方法二:未知长度的二维数组

1
2
3
4
5
6
7
8
9
10
var tArray = new Array();  //先声明一维
for(var k=0;k<i;k++){    //一维长度为i,i为变量,可以根据实际情况改变
 
tArray[k]=new Array();  //声明二维,每一个一维数组里面的一个元素都是一个数组;
 
for(var j=0;j<p;j++){   //一维数组里面每个元素数组可以包含的数量p,p也是一个变量;
 
tArray[k][j]="";    //这里将变量初始化,我这边统一初始化为空,后面在用所需的值覆盖里面的值
 }
}

给定义的数组传入所需的值
tArray[6][1]=5;//这样就可以将5的值传入到数组中,覆盖初始化的空

方法三:在这之前,以上两者方法都有问题,方法二,每次定义都初始化了,虽然后面可以动态修改,但是还是不方法

所以我尝试了一种动态传入值到数组的方法

ps:一些在实践过程中遇到的数组有趣的现象

本来以为二维数组可以像下面这样直接传入值

1
2
3
4
for(var a=0;a<i;a++){
tArray[a]=(matArray[a],addArray[a]); //matArray[a]和addArray[a]是两个数组,这两个数组直接传入tArray[a]中
 
};

结果是tArray[a]中收到的是后面一个数组的值,matArray[a]的内容被忽略的,如果换一个位置,matArray[a]在后面,则传入的是addArray[a]的值。

思考:简单的例子:

代码如下:
var a=[1,2];

var b=[];

b[0]=a;//把数组a作为b数组的元素传入b数组中

alert(b[0][1]);  //2

上面是最简单的二维数组,

上面例子换种写法:

代码如下:

var b=[];

b[0]=[1,2];//把数组[1,2]作为b数组的元素传入b数组中

alert(b[0][1]);  //2

可以看出上面的b[0]=[1,2]是可以用的

代码如下:

for(var a=0;a<i;a++){

tArray[a]=[ matArray[a],addArray[a] ];  上面例子中的()修改为[] 就可以成功的组成一个二维数组了

};

总结:方法三:

代码如下:

for(var a=0;a<i;a++){

tArray[a]=[ aArray[a],bArray[a],cArray[a]]; 还可以增加dArray[a],eArray[a]

};

这种情况适用于已知几个数组,把他们组合成一个二维数组情况

JS 创建多维数组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<script>
  var allarray=new Array();
  var res="";
  function loaddata()
  {
   for(var i=0;i<3;i++)
 {
 var starth=i*200;
 var strarw=i*200;
 var endh=(i+1)*200;
 var endw=(i+1)*200;
 allarray[i]=new Array();
 allarray[i][0]=new Array();
 allarray[i][1]=new Array();
 allarray[i][0][0]=starth;
 allarray[i][0][1]=strarw;
  allarray[i][1][0]=endh;
 allarray[i][1][1]=endw;
 }
  for(var i=0;i<allarray.length;i++)
  {
    var sh=allarray[i][0][0];
    var sw=allarray[i][0][1]
     var eh=allarray[i][1][0];
    var ew=allarray[i][1][1]
    res+="第"+i+"个坐标的开始坐标是:"+sh+","+sw+"结束坐标是:"+eh+","+ew+"<br/>";
  }
  document.getElementById("dv").innerHTML=res;
  }
</script>

最新文章

  1. mac包管理器Homebrew安装命令
  2. Easyui 让Window弹出居中与最大化后居中
  3. 9.openssl ca
  4. Java面试(1)-- Java赋值表达式
  5. 精华阅读第 9 期 |滴滴出行 iOS 客户端架构演进之路
  6. 统计学习方法——P1
  7. ios开发之xcode6中如何添加pch全局引用文件
  8. QVector 和vector的比较
  9. 基于visual Studio2013解决C语言竞赛题之0517矩阵
  10. 视频直播SDK-ios版
  11. Dapper.Contrib——更加优雅地使用Dapper进行增删改查
  12. H3C交换机如何配置管理VLAN
  13. LeetCode算法题-Longest Univalue Path(Java实现)
  14. Postman—使用数据文件
  15. python 用 __all__ 暴露接口
  16. jQuery animate方法开发极客标签Logo动画融合效果
  17. msdia80.dll文件出现在磁盘根目录下的解决方案(转)
  18. cocos2dx 3.6版本播放动画
  19. [洛谷P1440]求m区间内的最小值
  20. poj 2846 Repository

热门文章

  1. .NET框架源码解读之SSCLI的调试支持
  2. Solr之functionQuery(函数查询)
  3. Visual Studio for mac从入门到放弃1
  4. vs2008安装mvc3后新建项目报错 -- 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  5. asp.net——正则表达式
  6. Android学习之Adapter(数据适配器)
  7. kubectl get componentstatus ERROR:HTTP probe failed with statuscode: 503
  8. django系列5.3--ORM数据库的多表操作
  9. kali linux之无线渗透(续)
  10. BZOJ 1922--大陆争霸(最短路)