javascript数组 (4)

 javascript基础知识及变量(1)

 javascript之流程控制语句(2)

 javascript循环(3)

 javascript数组 (4)

 javascript函数(5)

javascript作用域(6)

数组

数组是由一组数据的集合,数组中的每个数据被称为元素,数组中可以存放任意类型的元素。是存储在单个变量下的优雅方式。

如何创建数组

  • 使用new关键字创建数组
  • 使用字面量的方式创建数组
  • 数组中每个元素之间用逗号相隔

使用new关键字创建数组

使用new创建关键字

   <script>
        var arr = new Array(); //创建一个空数组
        console.log(arr)
    </script>

image.png

使用自定义的方式创建数组

    var 数组名 = [ ];
 <script>
        //创建一个数组
        var arr = [5, 20, 56, "hello", "word"];
        console.log(arr)
    </script>

image.png

数组的使用方法

获取数组元素

    通过索引(下标)可以获取修改元素,注意:索引是从0开始。 语法:数组名[索引]

案例:打印数组中的每个元素


    <script>
        var arr = ["星期一", '星期二', '星期三', '星期四', "星期五", "星期六", '星期日'];
        console.log(arr[0]);
        console.log(arr[1]);
        console.log(arr[2]);
        console.log(arr[4]);
        console.log(arr[5]);
        console.log(arr[6]);
    </script>

image.png

遍历数组


    遍历数组:简单而言,就是将数组中的每一项元素从头到尾访问一遍,用for循环进行遍历,初始化变量当作索引使用。

案例:遍历下列数组

    <script>
        var arr = ['关羽', '张飞', '赵云', '马超', '黄忠'];
        for (var i = 0; i < arr.length; i++) {
            console.log(arr[i])
        }
    </script>

image.png

获取数组的长度

    语法:数组名.length   可以获取数组的长度,注意数组的长度和索引没有任何区别

获取以下数组的长度


    <script>
        var arr = ['20', '50', true, false, 'hello', "尧子陌", '临风笑却世间'];
        console.log(arr.length) //获取数组的长度
    </script>

image.png

数组的案例

求数组的平均值

思路如下

  • 声明一个求和的变量及求平均数的变量
  • 遍历数组中的每一项与求和的变量相加
  • 最后和除以数组的个数便得出平均值

    <script>
        var arr = [5, 10, 20, 90, 850, 60]; //声明一个数组arr
        var sum = 0; // 声明一个求数组的变量sum
        var average = 0; //声明一个求平均数的变量average


        for (var i = 0; i < arr.length; i++) {
            sum = sum + arr[i]
        }
        console.log(sum); // 数组的和
        var average = sum / arr.length;
        console.log(average) //数组的平均值
    </script>

image.png

求数组中的最大值

思路如下

 1.先声明一个数组
 2. 声明一个最大值变量max
 3.默认把数组元素arr[0]赋值给max
 4.遍历数组,每个数组元素与max相比较,若数组元素大于max,则将数组元素赋值给max,若数组元素比max小,则进行下一轮比较
 5. 得出结果


    <script>
        var arr = [5, 50, 63, 96, 17, 85];
        var max = 0; //声明一个最大值max
        max = arr[0]
        for (var i = 0; i < arr.length; i++) {
            if (max < arr[i]) {
                max = arr[i]
            }

        }
        console.log(max) //得出最大值
    </script>

image.png

数组分割成字符串

1. 声明一个变量str来存储切割好的字符串
2.遍历数组,将数组的每一项与字符串拼接
3.别忘后面要加上转义符(转义符用变量名更合适)

    <script>
        var strArr = ['yellow', 'red', 'hello', 'like'];
        var str = '' //声明一个变量来存储拼接好的字符串
        var step = '!' //声明一个切割符的变量
        for (var i = 0; i < strArr.length; i++) {
            str = str + strArr[i] + step
        }
        console.log('数组分割好的字符串:' + str)
    </script>

image.png

如何新增数组元素

通过length属性来新增属性

注意:不要直接给数组名赋值,否则会失去数组的全部数据

empty是空元素的意思


    <script>
        var arr = [50, 50, 60, "hello", "word", '惊鸿'];
        console.log('原始数组的长度' + arr.length) //获取数组的长度
        console.log(arr)
        arr.length = 20;
        console.log('新增数组的长度' + arr.length) //获取数组的长度
        console.log(arr)
    </script>

image.png

通过索引来新增数据元素


    <script>
        var arr = [50, 50, 60, "hello", "word", '惊鸿'];
        arr[6] = "尧子陌"
        arr[7] = "临风笑却世间"
        console.log(arr);
        console.log('新增数组元素的数组长度:' + arr.length)
    </script>

image.png

新建一个数组 里面存放1~10的整数

  • 声明一个空数组
  • 循环里面的计数器i,可以当作数组元素存入
  • 索引是从0开始的,因此计数器从0开始,但存入的数组元素要i+1

    <script>
        var arr = [];
        for (var i = 0; i < 10; i++) {
            arr[i] = i + 1;

        }
        console.log('存入1~10之间的整数:', arr)
    </script>

image.png

筛选数组

两种方法

  • 通过新增变量的方式实现筛选数组
  • 通过lengh属性可实现筛选数组

通过新增变量的方式实现筛选数组

通过新增变量自增的方式实现数组筛选

    <script>
        var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
        var newArr = []; //声明一个空数组
        var j = 0; //声明一个变量来实现新数组的自增
        for (var i = 0; i < arr.length; i++) {
            if (arr[i] != 0) {
                newArr[j] = arr[i]
                j++
            }

        }
        console.log('实现筛选数组后的新数组:',newArr) 
    </script>

image.png

通过length属性也可以实现数据筛选

通过length属性比较方便,新数组的lenth属性为0,但通过旧数组符合判断条件的数组元素存入后,便可以得出结果

    <script>
        var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
        var newArr = []; //声明一个空数组

        for (var i = 0; i < arr.length; i++) {
            if (arr[i] != 0) {
                newArr[newArr.length] = arr[i]

            }

        }
        console.log('实现筛选数组后的新数组:', newArr)
    </script>

image.png

反转数组

思路

 1.先声明一个新数组
 2.旧数组采用arr.length-1 新数组采用newArr.lenth 
 3.采用i--的方式

    <script>
        var arr = ['red', 'green', 'pink', 'purple'];
        var newArr = [] //声明一个新数组

        for (var i = arr.length - 1; i >= 0; i--) {
            newArr[newArr.length] = arr[i]
        }
        console.log('反转之后的新数组:', newArr)
    </script>

image.png

算法

    观察执行过程,发现规律,写出可用的代码

冒泡排序

核心:一次比较两个值,发现顺序错误将它们重新排列

    冒泡排序是一种算法,将一系列数据按照按照一定的顺序进行排列显示(从小到大或从大到小)

image.png

将数组的数字按从小到大排列


    <script>
        /* 
         * 将下列数组的数组元素按从小到大的顺序排列
         */
        var arr = [5, 4, 3, 2, 1];
        for (var i = 0; i <= arr.length - 1; i++) { //外层负责趟数
            for (var j = 0; j <= arr.length - i - 1; j++) { //内层负责每次交换的次数
                if (arr[j] > arr[j + 1]) {
                    var temp;
                    temp = arr[j]
                    arr[j] = arr[j + 1]
                    arr[j + 1] = temp
                }
            }
        }
        console.log(arr)
    </script>

image.png

注意:次数和索引号没有任何关系

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值