盘点js二维数组定义和初始化的三种方法

119 篇文章 1 订阅
本文介绍了JavaScript中定义和初始化二维数组的三种方法,包括直接定义、未知长度数组的动态创建以及处理字符串键名和Ajax传输的问题。作者还提供了实例和注意事项,帮助读者理解和应用这些技巧。
摘要由CSDN通过智能技术生成

本篇文章主要是对js二维数组定义和初始化的三种方法进行了总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助

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

var _TheArray = [["0-1","0-2"],["1-1","1-2"],["2-1","2-2"]]

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

1

2

3

4

5

6

7

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]的值。

思考:简单的例子:

1

2

3

4

var a=[1,2];

var b=[];

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

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

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

上面例子换种写法:

1

2

3

var b=[];

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

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

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

1

2

3

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

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

};

总结:方法三:

1

2

3

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>

补充资料:

这两天做项目时,要通过js传递一个带有字符串键名的二维数组,可是传递到后台,却得到了false,使用了很多种方法都不行,今天特地来介绍一下:js 数组初始化问题;

以及Ajax下传递带有字符串键名的数组如何操作

一维数组:

一维数组可以使用数字,字符串做建名。

var data = [];//不知道个数
var data = new Array(); //不知道个数

如果知道个数,具体数值可以用:

1

2

var data = new Array(1);

data['a'] = 'a';

或者

var data= ['a'];

二维数组:

二维数组不支持字符串键名。

一:

1

2

var data = [];

data.push(['a']);

1

2

var data_1 = ['a'];d

ata[0]=data_1;

二:

1

2

3

4

5

6

var data=new Array();

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

data[i]=new Array();

for(var j=0;j<2;j++){

data[i][j]=1;

}

提醒:

在使用Ajax传递数据时,js数组必须是数字键名。

如果要使用字符串做建名,要通过对象的形式:如下:

1

2

3

var data ={

'a':{'id':1,'url':h}

};

这篇文章介绍这了。

JS 二维数组的定义及长度判断

动态定义二维数组:

1.先定义一维:

var arr = new Array();

2.定义二维:

arr[0] = new Array();

arr[1] = new Array();

3.给数组赋值:

arr[0][0] = "00";

arr[0][1] = "01";

arr[1][0] = "10";

arr[1][1] = "11";

4.判断数组长度:

二维数组的行数:arr.length

相应行的列数:arr[0].length //第一行的长度 以上例来算此值为2

5.数组的调用:

很简单:var str = arr[0][0];

来源:微点阅读   https://www.weidianyuedu.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值