JavaScript数组
数组(一维数组)
数组的含义
数组:是类型相同的数据的集合。
对于一维数组,通过一个下标就可以确定数组元素的位置。
如何创建数组
方式一:
数组名 = new Array([数组的长度])
例如:
var arr = new Array(); //创建数组
var arr1=new Array(5) //创建一个具有5个单元的数组
方式二:
数组名 = []
例如:
var arr=[] //创建一个空数组
var arr = [1,2,3,4] //可在创建数组时,直接将数据放进去
如何访问数组元素
(1)数组定义后都有一个默认的属性length,length代表了数组的单元个数。
数组名.length 代表数组的长度。
(2)访问数组元素:数组名[索引],索引又称为下标,从0开始到数组长度减1。(0 <= i <= n-1)
例如:
var arr=new Array(); //创建数组
arr[0]="红楼梦" //数组下标从0开始,存放第一个数组元素
arr[1]="三国演义"
arr[2]="西游记"
arr[3]="水浒传"
console.log(arr) //输出数组元素
也可以运用循环结构,将数组元素输出
var arr=new Array(); //创建数组
arr[0]="红楼梦" //数组下标从0开始,存放第一个数组元素
arr[1]="三国演义"
arr[2]="西游记"
arr[3]="水浒传"
for(var i=0;i<arr.length;i++){
console.log(arr[i]) //输出数组中的各个元素
}
注:这里的arr.length代表数组的长度(数组元素的个数)
练习(计算最大值、最小值及均值)
定义一个整型数组,找出数组中的最大值、最小值,并计算平均值。
var arr = [32,43,21,49,71,30]
var max = min = arr[0] //初始化最大值与最小值为第一个数
var sum = arr[0] //初始化和为第一个数,用于计算平均数
for(var i=1;i<arr.length;i++){
if(max<arr[i]){
max=arr[i] //将最大值与数组内其他数值进行比较,若最大值小于其他数值,则将较大的数赋值给max
}else if(min>arr[i]){
min = arr[i] //将较小的数赋值给min
}
sum = sum+arr[i] //计算数组内所有元素的和
}
console.log("max="+max)
console.log("min="+min)
console.log("ave="+(sum/arr.length)) //输出平均数。
二维数组
二维数组的含义
通过两个下标(行下标、列下标)来确定一个数组元素。
如何创建二维数组
方法一:使用"new Array()"创建数组
数组名 = new Array(
new Array('Tom',13,115),
new Array('Lucy',11,152)
)
//','不可省略,否则会报错。
例如:
var arr = new Array(
new Array(11,22,33),
new Array(44,55,66),
new Array(77,88,99)
) //定义数组
var str = '' //设置一个空字符串
for(var i=0;i<arr.length;i++){ //外循环,控制行下标
for(var j=0;j<arr[i].length;j++){ //内循环,控制列下标,依次循环第i行的每一列元素
str+=arr[i][j]+"\t" //将二维数组的元素写进字符串,'\t'为个元素后加空格
}
str=str+"\n" //'\n'为第i行循环完成后,换行,开始下一行
}
console.log(str)
方法二:
数组名 = [[11,22,33,44],[55,66,77]]
例如:
var arr=[[11,22,33,44],[55,66,77]]
console.log(arr[1][3])
console.log(arr[1].length) //输出第二行的长度
下标为1的一行(第二行),下标为3的一列(第四列)没有元素,所以运行结果为undefined。
如何访问二维数组元素
数组名[下标1][下标2]
(1) 若"下标1"为行下标,"下标2"为列下标,则是按行优先访问
(2)若"下标1"为列下标,"下标2"为行下标,则是按列优先访问
练习(寻找二维数组每一行最大值、数组的转置)
(1)找出二维数组中每行元素的最大值并输出。
var arr = [
[45,78,32,10],
[12,0,61,39],
[5,-11,36,55]
]
var str=''
for(var i=0;i<arr.length;i++){
for(var j=0;j<arr[i].length;j++){
str+=arr[i][j]+'\t'
}
str+='\n'
}
console.log(str) //输出二维数组
for(var m=0;m<arr.length;m++){
var max= arr[m][0] //假定每一行的第一个元素为最大值
for(var n=1;n<arr[m].length;n++){
if(max<arr[m][n]){
max=arr[m][n] //将二维数组中较大的元素赋值给max
}
}
console.log("第"+(m+1)+"行的最大值是:"+max) //输出语句放在内循环完成之后,输出的是每一行的最大值;
//如果放在外循环完成之后,输出的是第四行的最大值
}
(2)完成二维数组的转置
var arr=[
['a','b','c'],['d','e','f'],['g','h','i'],['j','k','l']
]
var res=[] //定义二维数组的转置
for(var i=0;i<arr[0].length;i++){
res[i]=[] //先清空转置数组内原有的数据,避免对程序执行结果产生影响。
for(var j=0;j<arr.length;j++){
res[i][j]=arr[j][i] //为二维数组赋值
}
}
console.log(res)
到这里,大家应该已经学会JavaScript中数组的基本用法了。欢迎大家来交流学习,也可以为小编提出一些建议哦。