JavaScript 如何定义一个二维数组

JavaScript020

JavaScript 如何定义一个二维数组,第1张

方法一:

定义已知长度的二维数组,可直接定义并且初始化

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

方法二:

定义未知长度的二维数组

var tArray = new Array()//先声明一维数组

for(var k=0k<ik++) //一维数组长度为i,i为变量,可以根据实际情况改变

tArray[k]=new Array()  //声明二维,每一个一维数组里面的一个元素都是一个数组

for(var j=0j<pj++) //一维数组里面每个元素数组可以包含的数量p,p也是一个变量

{

tArray[k][j]="1"    //这里将变量初始化,我这边统一初始化为1

}

}

扩展资料:

JavaScript多维数组的创建:

<script>

var allarray=new Array()

var res=""

function loaddata()

{

for(var i=0i<3i++)

{

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=0i<allarray.lengthi++)

{

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>。

参考资料来源:MDN web docs-Array

1:首先最基本的数组方法。push,pop,shift,unshift.

2:splice()最终返回的都是当前操作的数组,具体操作后的结果要看读取原来的字符串。

3:splice(num,num,"n1","n1").如左所示,可以增加,删除,替换字符串。第一个数是开始的位置,第二个数是向后操作几个数,第三个是要换的数组。

4:slice(num1,num2)是用来从已有的数组或字符串中提取返回特定的元素的。他是不会改变原来的字符串。

5:分号使用的原则:缺少的分号会有分号自动插入机制,但是者不可靠。规则是以块结束的语句不要分号。

6:在调用数字变量的方法时,区分浮点数的点号还是调用方法的点运算符很重要。1..toString().

7:严格模式:为了让js书写变得更加好。

8:sort函数:主要用来对数组排序,默认情况下是将数组元素转变成字符串,按照那个编码比较,包括数字也是这样比的。还是只比较第一个数字。。如果想要实现自己的自定义排序,就要在sort()里面加自定义函数。

9:数组的话还得看那些forEach().Map().filter()

10:对象的比较不是值得比较,即使两个对象包含相同的属性,他们也不相同。

12:在Vue中检测数组更新,包括变异方法:pop,unshift. splice(),sort(),reverse()

非变异方法:这些方法是不会返回原数组的,而是会加载一个新的数组。

11:一些字符串方法。

var text=document.getElementById('text')

var lines=text.value.split("\n")

var result="

"

for(var i=0i

result+=lines[i]

}

result+=""

var div=document.getElementById('div')

div.innerHTML=result

// setInterval(function(){

//     div.innerHTML="sdfsdfsd"

// },1000)

}

12:数组是从索引0开始的自然数到任意值的印射。这些值是成为数组的元素。

13:数组可以在作为索引到值得印射,换句话来说,数组可能不是连续的,中间可以有空缺。

14:其中没有定义的是undefined.绝大数的js引擎都会自动去重,并连续保存元素。

15:数组也可有对象,并且可以拥有对象的属性。但是并不认为那些属性是实际数组的一部分。

16:多维数组的操作:var rows=[]for(var rowCount=0rowCount<5rowCount++){rows[rowCount]=[]for(var colCount=0colCount<5colCount++){rows[rowCount][colCount]='.'}}rows[0][2]='x'rows.forEach(function(row){console.log(row.join(''))})当矩阵较小的且纬度固定,可以通过数组字面量来创建。

17:多维数组怎么创建?var infos =

[

['小A','女',21,'大一'],

['小B','男',23,'大三'],

['小C','男',24,'大四'],

['小D','女',21,'大一'],

['小E','女',22,'大四'],

['小F','男',21,'大一'],

['小G','女',22,'大二'],

['小H','女',20,'大三'],

['小I','女',20,'大一'],

['小J','男',20,'大三']

]var arr=[]

var n=0

for(var i=0i<infos.lengthi++){

if(infos[I][3]=="大一"){arr[n]=infos[i]console.log(arr[n])}

}

n++

}

18:另一种初始化的方法:var tArray = new Array() 

for(var k=0k<pK++){

tArray[k]=new Array(){

for(var j=0j<pj++){

tArray[k][j]=""

}

}

}然后在下面赋值。。。

19:数组索引之外的索引被视为普通的属性值。他们不会作为数组元素呈现,也不会影响length的属性。

20:in 操作符用来查看数组中是否有这个索引的值,这有必要么?还有别的用么?

21:delete不仅可以删除对象,还可以删除数组内的元素,这个删除不会产生空缺。不会更新length.

首先要明确,在JavaScript里面没有二维数组的概念,只能用普通数组来模拟出二维数组的效果。

其次,对二维数组进行分析,可以得出循环的次数的规律,即偶数/2或者奇数对2取整后加1。

再次,可以看出方阵是从右下角开始,逆时针逐渐增加得来。

那么,可以写出以下函数:

function

printAll(number

,start){

//number为N阶矩阵,start为开始的数字,默认值分别是5和1。

number

=

number

||

5

start

=

start

||

1

//

c为求出的循环次数

var

c

=

number%2

==

0

?

number/2

:

Math.ceil(number/2)

//

定义一个一维数组,方便生成二维数组

var

arr

=

[]

//

生成二维数组并初始化,值为0

for(

var

i

=

0

i

<

number

i++){

arr[i]

=

[]

for(var

j

=

0

j

<

number

j++){

arr[i].push(0)

}

}

//

循环一次的函数

function

circle(c){

//

从下往上赋值

for(

i

=

number

-

c

-

1

i

>=

c

i--){

arr[i][number

-

c

-

1]

=

start++

}

//

从右往左赋值

for(i

=

number

-

c

-

2

i

>=

c

i--){

arr[c][i]

=

start++

}

//

从上往下赋值

for(

i

=

c

+

1

i

<

number

-

c

i++){

arr[i][c]

=

start++

}

//

从左往右赋值

for(i

=

c

+

1

i

<

number

-c

-

1

i++){

arr[number

-

c

-

1][i]

=

start++

}

}

//

循环给数组赋值

for(j

=

0

j

<

c

j++){

circle(j)

}

//

在控制台查看生成的数组信息,可注释掉

for(

i

=

0

i

<

number

i++){

console.log(arr[i])

}

}

希望可以帮到你,思路和函数全给你了