一、介绍
这节课呢,我们来了解的是JavaScript 二维数组。
什么是二维数组?
二维数组:从整体上看是一个数组,但是其中一个元素又是一个数组,即数组中的数组。二维数组就是一个table表格。
二、知识点介绍
1、访问二维数组中的某个元素
2、遍历二维数组中的每个元素--循环的嵌套
3、使用二维数组
三、上课对应视频的说明文档
1、访问二维数组中的某个元素
var arr1=[[11,12,13],[21,22,23],[31,32,33]];
consolo.load(arr1[0][0]); //值为11
arr1[1][2]=230; //把23改成230
2、遍历二维数组中的每个元素--循环的嵌套
for(var i=0;i<arr1.length;i++){
for(var j=0;j<arr[i].length;j++){
document.write(arr[i][j] + " ");
}
document.write("<br/>")
}
3、使用二维数组
var arr1=[[11,12],[113.14]]; //定义一个规则的二维数组
var arr2=new Array(); //顶一个一个不规则的二维数组
arr2[0]=[11];
arr2[1]=[22,23];
console.log(arr2);
var arr3=new Array(); //定义一个形如表格的二维数组
arr3[0]=new Array(1,"pyrene",'2010');
arr3[1]=new Array(2,"py","2010");
arr3[2]=new Array(3,"pyrenee","2010");
document.write(arr3);
二维数组的初始化
记住了二维数组的本质,初始化也难不倒我们了,下面来看一下:
实例一:
var arr = [[1,2],['a','b']];
console.log(arr[1][0]); //a 第2列第1行所在的元素
实例二:
var arr = new Array(new Array(1,2),new Array("a","b"));
console.log(arr[1][0]);
实例三:二维数组的声明:
var arr = new Array(); //先声明一维
for(var i=0;i<5;i++){ //一维长度为5
arr[i]=new Array(i); //在声明二维
for(var j=0;j<5;j++){ //二维长度为5
arr[i][j]=i;
}
}
然后,遍历二维数组arr
for(var i=0;i<arr.length;i++){
for(var j=0;j<arr[i].length;j++){
document.write(arr[i][j]);
}
document.write("<br/>");
}
结果:
注意:我们写入换行是写入的标签,因为document.write()是写入到HTML文档。所以写入换行不能用"\n"。
例题:
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的二维数组和一个整数,判断数组中是否含有该整数
var arr = [[1,2,4,6],[2,4,7,8],[8,9,10,11],[9,12,13,15]];
//规律:首先选取数组中右上角的数字,如果该数字=要查找的数字,查找过程结束;如果该数字>要查找的数字,剔除这个数字所在的列;
//如果该数字<要查找的数字,剔除这个数字所在的行。
function find(arr,num){
if(num==null || num==''){
console.log(num+" is null");
return;
}
while(arr.length){
var temp = arr[arr.length-1][0];
if(num == temp){
console.log(num+"is finded");
return temp;
}else if(temp>num){
arr.pop();
if(arr.length == 1){
console.log(num + " is not exists,"+num+" is less the minValue");
return;
}
}else{
for(var i=0;i<arr.length;i++){
if(arr[i].length ==1){
console.log(num + " is not exists,"+num+" is more than the maxValue");
return;
}
arr[i].shift();
}
}
}
}
var result = find(arr,18);
console.log(result);