JavaScript数组、二维数组及相关练习

本文详细介绍了数组的各种操作,包括创建、访问、修改、查找最大值和最小值、删除0元素、数组倒置等。同时,深入探讨了二维数组的创建、访问和实践应用,如找出每行最大值、计算对角线元素之和以及数组转置等。内容涵盖了基本的数组操作技巧和二维数组处理方法。
摘要由CSDN通过智能技术生成

数组

数组是一组类型相同的数据的集合,其中的每个数据被称作元素,在数组中可以存放任意类型的元素。

创建数组

1、使用new创建数组

 var 数组名=new Array()

2、使用字面量创建数组

 var 数组名=[ ]

数组元素的访问

  • 数组的索引从0开始到length-1
  • 数组创建后,都有属性length代表数组的长度(元素个数)
  • 通过循环访问数组元素
var arr =new Array(4)
arr[0]='a'
arr[1]='b'
arr[2]='c'
arr[3]='d'
for(i=0;i<arr.length;i++){
    console.log(arr[i])
}

数组元素的练习

输出下列数组的最大值、最小值

//输出下列数组的最大值、最小值
var num=[51,89,56,34,92]
var max=num[0]
var min=num[0]
for(var i=1;i<num.length;i++) {
    if(max<num[i]){
        max=num[i]
    }
    if (min>num[i]) {
        min=num[i]
    }
}
console.log(max)
console.log(min)

数组中去掉所有的0元素

//数组中除去0
var arr=[2,0,6,1,77,52,9,35,0]
var newArr=[]
for(var i=0;i<arr.length;i++){
    if (arr[i]!=0) {
        newArr[newArr.length]=arr[i]
    }
}
console.log(arr)
console.log(newArr)

数组元素的倒置

//1、利用一个数组倒置
var arr=[23,8,12,45,89,90]
for(var i=0;i<arr.length/2;i++){
    var t=arr[i]
    arr[i]=arr[arr.length-i-1]
    arr[arr.length-i-1]=t
}
console.log(arr)
//2、利用两个数组倒置
var arr=[23,8,12,45,89,90]
var newArr=[]
for(var i=arr.length-1;i>=0;i--){
    newArr[newArr.length]=arr[i]
}
console.log(newArr)
//3、利用while循环倒置
var i=0
var j=arr.length-1
while (i<j) {
    var temp=arr[i]
    arr[i]=arr[j]
    arr[j]=temp
    i++
    j--
}
console.log(arr)

二维数组

通过两个下标(行下标和列下标)来确定一个数组元素

创建二维数组

1、数组名=new Array(new Array() , new Array())
2、数组名=[ [ ] , [ ] ]

二维数组的访问

数组名 [行下标] [列下标]。默认按行优先

//二维数组的打印(字符串输出)
var arr=new Array(
    new Array(23,55),
    new Array(45,65),
    new Array(55,67,89)
)
console.log(arr)
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)

二维数组的练习

找出二维数组每一行的最大值

//找出二维数组每一行的最大值
var arr=[
    [44,33,55,22,88],
    [56,53,89,67],
    [32,66,88]
]
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]
        }
    }
    console.log("第"+(m+1)+"行的最大值是:"+max)
}

输出二维数组每行、每列、对角线元素之和

// 定义一个i*j的二维数组,存放数值型数据,输出每行、每列、对角线元素之和
var arr=[
    [1,2,3],
    [4,5,6],
    [7,8,9]
]
var sum3=0
var sum4=0
for(var i=0;i<arr.length;i++){
    var sum1=0
    var sum2=0
    for(var j=0;j<arr[i].length;j++){
        sum1+=arr[i][j]
        sum2+=arr[j][i]
        if (i==j) {
            sum3+=arr[i][j]
        }
        if (i+j+1==arr.length) {
            sum4+=arr[i][j]
        }
    }
    //也可用sum4+=arr[i][arr.length-1-i]
    console.log("第"+(i+1)+"行和是"+sum1)
    console.log("第"+(i+1)+"列和是"+sum2)
}
console.log("左上对角线元素和"+sum3)
console.log("右上对角线元素和"+sum4)

二维数组的转置

var arr=[
    [1,2,3],
    [3,4,5],
    [5,6,7],
    [7,8,9]
]
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]
    }
}
var str=""
for(var i=0;i<res.length;i++){
    for(var j=0;j<res[i].length;j++){
        str+=res[i][j]+"\t"
    }
    str+="\n"
}
console.log(str)

让二维数组的每行元素都是 降序 排列

// 让二维数组的每行元素都是 降序 排列
var arr=[
    [1,2,3],
    [4,5,6],
    [7,8,9]
]
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)
  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值