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中数组的基本用法了。欢迎大家来交流学习,也可以为小编提出一些建议哦。

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值