• 2019-4-25 数组操作方法和练习


    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title></title>
    </head>
    <body>
    <script type="text/javascript">
    //数组的基本操作
    //1、创建数组
    var arr = [1,3,5,7];
    var arr1 = new Array(11,22,33);
    var arr2 = Array(111,222);
    //2、访问数组成员;数组[索引] 下表从0开始
    //console.log(arr[0]);
    //3、修改数组,修改某个索引位置的数据
    arr[1] = "heheheh";
    console.log(arr[1]);

    //4、添加数据到数组,会修改数组的长度
    arr[4] = "我是新增的数据";

    //5、如果需要往数组最后面添加数据,那么索引就是当前数组的长度
    arr[arr.length] = "我是通过arr.length来添加的数据";

    //6、访问数组的长度; 数组.length
    console.log(arr.length);
    console.log(arr[0]);

    arr.length = 4;//修改数据的长度 长度大于该数据的会被删除;
    console.log(arr.length);

    arr1.length = 0;//设置为0,就是清空数组的数据;

    delete arr2[1];//删除某个数据的索引 delete 数组名[索引];
    //delete 删除的是数组索引对应数据赋值为undefined,该数组的长度没有变化
    console.log("arr2数组的长度为:"+arr2.length);



    //7、遍历数组(迭代数组)
    //第一种方法
    //创建又一个数组
    var arr3 = ["hehe","hehehehehe",1,5,659,"zhutou"];

    for (var i=0;i<arr3.length;i++) {
    var value = arr3[i];// i 是数组的索引 arr3[i]表示获取数组的索引
    console.log(value);
    }

    //第二种方法

    var arr4 = ["1","22",1,5,659,"888"];
    for (var i in arr4) {
    // var v= arr4[i];
    // console.log(v);
    document.write(arr4[i]+" ");
    }


    /*
    * 数组为:[1,3,5,7,24,32,25,48]
    1.求数组中数字奇数的个数和偶数的 "个数"
    2.求出上面数组的平均值
    */
    var arr5 = [1,3,5,7,24,32,25,48];

    var n1 = 0;//记录偶数的个数
    var n2 = 0;//记录奇数的个数
    var sum = 0;//定义一个变量,存储和;

    //遍历数组
    for (var i=0;i<arr5.length;i++) {
    var vv = arr5[i]; //获取所有数组的数据
    sum += vv; //获取所有数组的数据进行累加
    if (vv%2==0) {
    n1++;
    }else{
    n2++;
    }
    }
    console.log(n1,n2,sum/arr5.length);


    //练习二 设计一个数组的最大值的

    var arr7 = [-10,52,999,-69,0,85];
    //定义一个数组 默认最大值是第一个元素
    var maxsum = arr7[0];
    //i 从1开始,因为我们默认最大值就是第一个元素,从0开始比较没有意义;
    //遍历数组
    for (var i=1;i<arr7.length;i++) {
    var v1 = arr7[i];
    if (v1>maxsum) {// 把数组中数与max比较,如果v大于max,证明v是最大值;
    maxsum = v1;//把v赋值给max;
    }
    }
    console.log("最大值是:"+maxsum);


    //求数组的最小值 arr = [23,3,5,7,243,1,25,48];
    var minNum = [23,3,5,7,243,1,25,48];
    //假设一个数据为最小值
    var minN = minNum[0];
    for (var i = 0;i<minNum.length;i++) {
    var mN = minNum[i];
    if (mN<minN) {//mN时数组的数据,如果小于我们假设的值,说明第一次的mN是最小值,
    minN = mN;
    }
    }
    console.log("最小时"+minN);

    var aaa = [-77,-10,-99,-30];

    //定义一个最大值,默认先假设最大值是第一个元素;
    var max = aaa[0];

    //i 从1开始,因为我们默认最大值就是第一个元素,从0开始比较没有意义;
    for(var i=1;i<aaa.length;i++){
    var v = aaa[i];
    if(v>max){ // 把数组中数与max比较,如果v大于max,证明v是最大值;
    max = v; //把v赋值给max;
    }
    }
    console.log(max);

    //定义一个数组,输入9个任意的整数,求该数组中奇数的个数和奇数的平均值。

    var nineNum = [11,22,33,14,25,36,96,-78,85];
    //定义一个变量记录奇数 的个数和奇数和
    var a1 = 0;
    var a1Num = 0;
    //遍历数组
    for (var i = 0;i<nineNum.length;i++) {
    var newNum = nineNum[i];//遍历出数组的数据
    //通过if语句判断是否是奇数
    // if (nineNum[i]%2==1) {
    // a1++;
    // a1Num += nineNum[i];
    //
    // }
    if (!(newNum%2==0)) {
    a1++;
    a1Num += newNum;

    }

    }
    //a1Num += a1;
    console.log("奇数的个数为:"+a1);
    console.log("奇数的平均值为:"+a1Num/a1);

    //10、二维数组:
    //二维数组本质上是以数组作为数组元素的数组

    //创建一个二维数组
    var newArr = [
    [1,2,3],
    [4,5,6],
    [7,8,9]
    ]
    console.log(newArr[0][0]);//获取内部数组的第一个元素
    console.log(newArr[1][1]);//获取内部数组的元素

    //遍历二维数组
    for (var i=0;i<newArr.length;i++) {
    var maxNew = newArr[i];
    //遍历的是大数组,还剩下小数组 需要再次遍历
    for (var j=0;j<maxNew.length;j++) {
    var minNew = maxNew[j];
    console.log(minNew);
    }
    }

    //通过for in方式遍历二维数组

    for (var i in newArr) {
    var m1 = newArr[i];
    for (var j in m1) {
    var m2 = m1[j];
    console.log(m2);
    }
    }


    //二维数组小练习
    //创建一个二维数组
    var group = [
    [80,92,92],
    [61,65,71],
    [59,1199,70],
    [85,87,90],
    [76,77,88]
    ];
    //找出以下数组中最大值;
    //最大值对应的索引值 ,需要定义两个索引记录;
    var maxRow = 0;
    var minCol = 0;
    var max = group[0][0];//默认第一个元素为最大值
    //遍历二维数组
    for (var i=0;i<group.length;i++) {
    var v1 = group[i];
    //再次遍历
    for (var j = 0;j<v1.length;j++) {
    var v2 = v1[j];//遍历完所有数据
    //进行if判断
    if (v2>max) {
    max = v2;
    maxRow = i;
    minCol = j;
    }
    }
    }
    console.log(max,maxRow,minCol);



    /**
    * (二维数组,逻辑,偏难)//求该数组的平均值,最大值,最小值
    *
    var arr = [
    [12,43,23,123],
    [54,54,23,64],
    [86,67,34,23]
    ];


    求该数组的平均值; 所有数和/所有数的个数;
    所有数和:获取数组中所有数,相加保存;
    所有数的个数:其实就是二维数组中内部那个数组的个数相加;

    最大值;
    最小值;
    */
    //定义一个数组
    var aaa = [
    [12,43,23,123],
    [54,54,23,64],
    [86,67,34,23]
    ];
    //定义一个变量存储所有数的和
    var aaaSum = 0;
    //定义一个变量存储所有数的个数
    var count = 0;

    var maxA = aaa[0][0];
    var minA = aaa[0][0];

    //遍历数组;
    for (var i=0;i<aaa.length;i++) {
    var aa1 = aaa[i];
    //获取每一个数组的长度相加
    count += aa1.length;
    //再次遍历
    for (var j=0;j<aa1.length;j++) {
    var aa2 = aa1[j];
    //将获取的数据累加
    aaaSum += aa2;
    //使用if判断最大值、最小值
    if (aa2>maxA) {
    maxA = aa2;
    } else if(aa2<minA){
    minA = aa2;
    }
    }
    }
    console.log(aaaSum/count);
    console.log(maxA,minA);
    </script>
    </body>
    </html>

  • 相关阅读:
    Git 几个常用操作
    Ubuntu16.04安装YouCompleteMe
    常用命令总结
    启动Kernel提示Bad Data CRC
    linux4.15.1编译init/mounts报错
    编译Linux-4.15.1内核时遇到:“error : openssl/bio.h :No such file or folder”
    添加mtdparts引起的问题
    arm-linux-ld:u-boot.lds:1: ignoring invalid character `#' in expression
    smartgit的安装
    ubuntu下安装wine
  • 原文地址:https://www.cnblogs.com/webJian/p/10767463.html
Copyright © 2020-2023  润新知