方法一:
定义已知长度的二维数组,可直接定义并且初始化
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])
}
}
希望可以帮到你,思路和函数全给你了