博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript -- 定义二维数组
阅读量:4325 次
发布时间:2019-06-06

本文共 1973 字,大约阅读时间需要 6 分钟。

方法一:直接定义并且初始化,这种遇到数量少的情况可以用

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>

转载于:https://www.cnblogs.com/mafeng/p/8269115.html

你可能感兴趣的文章
对innodb 拷贝文件实现数据库的方式(转)
查看>>
python知识点 2014-07-09
查看>>
FloatingActionButton的一点学习感悟
查看>>
ABAP CDS ON HANA-(10)項目結合して一つ項目として表示
查看>>
网站地址信息
查看>>
产品经理 - 登录 注册
查看>>
阶段3 2.Spring_01.Spring框架简介_03.spring概述
查看>>
阶段3 2.Spring_02.程序间耦合_1 编写jdbc的工程代码用于分析程序的耦合
查看>>
阶段3 2.Spring_01.Spring框架简介_04.spring发展历程
查看>>
阶段3 2.Spring_02.程序间耦合_3 程序的耦合和解耦的思路分析1
查看>>
阶段3 2.Spring_02.程序间耦合_5 编写工厂类和配置文件
查看>>
阶段3 2.Spring_01.Spring框架简介_05.spring的优势
查看>>
阶段3 2.Spring_02.程序间耦合_7 分析工厂模式中的问题并改造
查看>>
阶段3 2.Spring_02.程序间耦合_4 曾经代码中的问题分析
查看>>
阶段3 2.Spring_03.Spring的 IOC 和 DI_2 spring中的Ioc前期准备
查看>>
阶段3 2.Spring_03.Spring的 IOC 和 DI_4 ApplicationContext的三个实现类
查看>>
阶段3 2.Spring_02.程序间耦合_8 工厂模式解耦的升级版
查看>>
阶段3 2.Spring_03.Spring的 IOC 和 DI_6 spring中bean的细节之三种创建Bean对象的方式
查看>>
阶段3 2.Spring_03.Spring的 IOC 和 DI_3 spring基于XML的IOC环境搭建和入门
查看>>
阶段3 2.Spring_04.Spring的常用注解_3 用于创建的Component注解
查看>>