zoukankan      html  css  js  c++  java
  • 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>

  • 相关阅读:
    深入Android 【一】 —— 序及开篇
    Android中ContentProvider和ContentResolver使用入门
    深入Android 【六】 —— 界面构造
    The service cannot be activated because it does not support ASP.NET compatibility. ASP.NET compatibility is enabled for this application. Turn off ASP.NET compatibility mode in the web.config or add the AspNetCompatibilityRequirements attribute to the ser
    Dynamic Business代码片段总结
    对文件的BuildAction以content,resource两种方式的读取
    paraview 3.12.0 windows下编译成功 小记
    百度网盘PanDownload使用Aria2满速下载
    netdata的安装与使用
    用PS给证件照排版教程
  • 原文地址:https://www.cnblogs.com/webJian/p/10767463.html
Copyright © 2011-2022 走看看