JavaScript-day04

目录

01-数组的创建

02-数组包含的属性

03-数组的访问和修改

04-数组遍历

05-多维数组

06-最值

07-栈方法和队列方法

08-检索方法

09-数组转字符串

10-其他

11-冒泡排序


01-数组的创建

<!DOCTYPE html>
<html lang="cn">

<head>
    <meta charset="UTF-8">
    <title>03-JavaScript</title>
    <style>

    </style>
</head>

<body>
    <script>
        // 数组的创建
        // 数组的创建1 依然需要使用var关键字 来创建
        var arr = ['a', 'b', 'c', 'd', 'e'];
        console.log(arr);


        // 创建一个学生信息的数组
        // 对于数组来说,可以添加任意的数据类型
        var students = ["张三", 28, true, "🚹", 145];
        console.log(students);


        var arr1 = [];
        // 空数组
        console.log(typeof students);
        // object  复杂数据类型


        // 数组的创建2
        // 通过 new Array()  来创建数组  通过构造函数来创建
        // console.dir(Array);
        var arr2 = new Array();
        console.log(arr2);
        // var students = ["张三", 28, true, "🚹", 145];
        var students2 = new Array("张三", 28, true, "🚹", 145);
        console.log(students2);



        // 直接量创建的数组可以在中间添加空值
        var arr3 = [1, 2, , , 5, 6];
        // 构造函数创建的数组不可以添加空值  会直接报语法错误
        // var arr4 = new Array(1, 2, , , 5, 6);

        console.log(arr3);
        // console.log(arr4);
    </script>
</body>

</html>

02-数组包含的属性

<!DOCTYPE html>
<html lang="cn">

<head>
    <meta charset="UTF-8">
    <title>03-JavaScript</title>
    <style>

    </style>
</head>

<body>
    <script>
        1. 数组的索引下标 从0开始
        var arr = [1, 2, 3, 'a', 'b'];
          0  1  2  3  4
        console.log(arr);

        2.长度 数组的值的个数
        console.log(arr.length);

        长度 和 下标    长度-1 = 下标的最大值

        // 只要是数组 就一定会有长度 
        var arr1 = [1, 2, , , 5, 6];
        console.log(arr1);
        console.log(arr1.length);

        var arr2 = [];
        console.log(arr2);
        console.log(arr2.length);


        数组长度 可以修改的  、
        如果改后大于原本长度 会增加相对应的空 
        如果小于原本长度 会删除多余的值
        var arr = [1, 2, 3, 'a', 'b'];
        console.log(arr);
        console.log(arr.length);
        arr.length = 10;
        console.log(arr);
        console.log(arr.length);
        arr.length = 2;
        console.log(arr);
        console.log(arr.length);
    </script>
</body>

</html>

03-数组的访问和修改

<!DOCTYPE html>
<html lang="cn">

<head>
    <meta charset="UTF-8">
    <title>03-JavaScript</title>
    <style>

    </style>
</head>

<body>
    <script>
        var arr1 = [1, 2, 3];
        console.log(arr1);
        数组的访问 
        通过索引下标 来访问数组中的元素
        数组名称[索引下标]
        var arr = ['liubang', 'wangwu', 'zhaoliu'];
        console.log(arr[0]);
        console.log(arr[1]);
        console.log(arr[2 - 1]);
        console.log(arr[2 + 1]); // undefined
        console.log(arr[-1]); //undefined

        数组的修改
        通过索引下标 来修改数组中的元素
        数组名称[索引下标] = 新值
        arr[2] = "liubang";
        // arr[6] = "张飞";
        arr[-3] = "张小飞飞飞飞";
        arr[-1] = "张小飞";
        arr[-2] = "张小飞飞";
        arr[2.5] = "张小飞飞飞";
        arr[1.5] = "张小飞飞飞飞飞";

        console.log(arr);

        数组长度 只计算正整数
        var arr3 = [];
        arr3[-1] = "o((>ω< ))o";
        arr3[2.5] = "(¬︿̫̿¬☆)";
        
        数组的长度仍为0
        console.log(arr3);
        console.log(arr3[-1]);
        console.log(arr3[2.5]);
    </script>
</body>

</html>

04-数组遍历

<!DOCTYPE html>
<html lang="cn">

<head>
    <meta charset="UTF-8">
    <title>03-JavaScript</title>
    <style>

    </style>
</head>

<body>
    <script>
        var arr = ['刘邦', '张良', '韩信', '萧何', '刘备', '韩信', '萧何'];

        // console.log(arr[0]);
        // console.log(arr[1]);
        // console.log(arr[2]);
        // console.log(arr[3]);
        // console.log(arr[4]);
        for (var i = 0; i < arr.length; i++) {
            console.log(arr[i]);
        }
    </script>
</body>

</html>

05-多维数组

<!DOCTYPE html>
<html lang="cn">

<head>
    <meta charset="UTF-8">
    <title>03-JavaScript</title>
    <style>

    </style>
</head>

<body>
    <script>
        // 当访二维数组时,先访问第一个,再访问第二个
        var arr = [
            [1, 2, 3],
            ["a", "b", "c"]
        ];
        // console.log(arr[0][0]);
        // console.log(arr[0][1]);
        // console.log(arr[0][2]);
        // console.log(arr[1][0]);
        // console.log(arr[1][1]);
        // console.log(arr[1][2]);

        for (var i = 0; i < arr.length; i++) {
            for (var j = 0; j < arr[i].length; j++) {
                console.log(arr[i][j]);
            }
        }


        // var arr = [
        //     [1, [9, 5, 4], 3],
        //     ["a", "b", "c"]
        // ];
        // console.log(arr[0][1][0]);//多维数组
    </script>
</body>

</html>

06-最值

<html lang="cn">

<head>
    <meta charset="UTF-8">
    <title>03-JavaScript</title>
    <style>

    </style>
</head>

<body>
    <script>
        var arr = [11, 52, 73, 44, 15];
        // 求最值的方法
        var max = arr[0];
        var min = arr[0];
        for (var i = 0; i < arr.length; i++) {
            if (max < arr[i]) {
                max = arr[i];
            }

            if (min > arr[i]) {
                min = arr[i];
            }
        }

        console.log(max);
        console.log(min);
    </script>
</body>

</html>

07-栈方法和队列方法

<html lang="cn">

<head>
    <meta charset="UTF-8">
    <title>03-JavaScript</title>
    <style>

    </style>
</head>

<body>
    <script>
        var arr = [1, 2, 3, 4, 5];
        // 1. 方法的参数   2.方法的返回值  3.  是否改变原本的数组
        // push
        // 添加元素  在元素的末尾的位置添加  
        // 需要几个就可以添加几个
        // 参数 需要添加的元素  可以写多个 
        // 之间使用逗号分隔
        // 返回值  会返回一个添加完之后的数组的长度
        // 会改变原本的数组
        arr.push('溜溜溜', '嘁嘁嘁', '叭叭叭');
        // console.log(arr.push('溜溜溜', '嘁嘁嘁', '叭叭叭'));
        console.log(arr);

        // pop
        // 删除元素  删除末尾位置的一个元素
        // 参数  不需要参数
        // 返回值 返回删除的元素
        // 会改变原本的数组
        arr.pop();
        // console.log(arr.pop());
        console.log(arr);

        // unshift
        // 添加元素  在元素的头部的位置添加  
        // 需要几个就可以添加几个
        // 参数 需要添加的元素  可以写多个 
        // 之间使用逗号分隔
        // 返回值  会返回一个添加完之后的数组的长度
        // 会改变原本的数组
        arr.unshift('咯咯咯');
        // console.log(arr.unshift('咯咯咯'));
        console.log(arr);

        // shift
        // 删除元素  删除头部的位置的一个元素
        // 参数  不需要参数
        // 返回值 返回删除的元素
        // 会改变原本的数组
        arr.shift();
        // console.log(arr.shift());
        console.log(arr);


        // 栈方法  先进后出
        // 队列方法 先进先出
    </script>
</body>

</html>

08-检索方法

<!DOCTYPE html>
<html lang="cn">

<head>
    <meta charset="UTF-8">
    <title>03-JavaScript</title>
    <style>

    </style>
</head>

<body>
    <script>
        var arr = [1, 2, 3, 4, 1];
        // includes
        // 用于 查找 是否包含某个元素 返回 布尔值  采用的是全等于
        // 参数  1.需要查找的元素   2.从哪个位置开始查找 索引下标 
        // 如果超过最大的索引下标那么不会在检索了  -1 表示 为最后一个元素
        // 如果 arr.length + 查询的开始位置的数字   为 负数 那么就会从头开始检索
        // 返回值 布尔值 是否找到的结果
        // 不会改变原本的数组
        console.log(arr.includes(9)); // false 没有找到 
        console.log(arr.includes(1, -99)); // true 找到了
        console.log(arr.includes('1')); //false 没有找到

        // indexOf
        // 用于 查找 是否包含某个元素 返回 索引下标  第一次出现的位置 采用的是全等于
        // 参数  需要查找的元素  2从哪个位置开始查找 索引下标 
        // 如果超过最大的索引下标那么不会在检索了  -1 表示 为最后一个元素
        // 返回值 索引下标  没有找到返回 -1
        // 不会改变原本的数组
        // console.log(arr.indexOf(99)); // -1 没有找到
        console.log(arr.indexOf(1, 1));
    </script>
</body>

</html>

09-数组转字符串

<!DOCTYPE html>
<html lang="cn">

<head>
    <meta charset="UTF-8">
    <title>03-JavaScript</title>
    <style>

    </style>
</head>

<body>
    <script>
        var arr = ['a', 'b', 'c'];
        // join 数组转字符串  将数组里面的每一个元素分别拿出来 拼接到一个字符串中
        // 参数 每一个元素的分隔符
        // 返回值  返回由内容组成的字符串
        // 不会改变原数组
        // arr.join('+');
        // var str = arr.join('+');
        console.log(arr.join('❤'));

        // toString 
        // 参数 没有参数 
        // 返回值  返回由内容组成的字符串 中间使用逗号分隔
        // 不改变原数组
        console.log(arr.toString('❤'));//参数无效
    </script>
</body>

</html>

10-其他

<!DOCTYPE html>
<html lang="cn">

<head>
    <meta charset="UTF-8">
    <title>03-JavaScript</title>
    <style>

    </style>
</head>

<body>
    <script>
        var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
        var arr1 = 3;
        isArray
        判断传入的是否是一个数组  和isNaN 一样
        参数 就是需要检测的变量
        返回值  布尔值 是否是一个数组
        不改变原数组
        console.log(Array.isArray(arr1));


        splice  增  删  改
        参数 参数1 需要增加 删除 修改的起始位置(必须的) 会到哪个地方
        参数2 需要删除的个数(可选)  
        参数3 增加的元素(可选)
        返回值  被修改的内容
        改变原数组

        增
        arr.splice(2, 0, "你好");
        console.log(arr);

        删
        arr.splice(1, 2);
        console.log(arr);

        改
        arr.splice(2, 3, "三", "四", "五");
        console.log(arr.splice(2, 3, "三", "四", "五"));
        console.log(arr);



        slice  截取数组
        参数1 起始位置  参数2 结束位置 (不包含结束位置)
        如果参数只有开始 没有结束 那么会从开始一直到最后
        如果参数只有一个0  那么会原封不动的把数组打印一遍
        返回值  截取出来的数组
        不会改变原数组
        var arr2 = [1, 2, 3, 4, 5];
        console.log(arr2.slice(1, 3));
        console.log(arr2.slice(1));
        console.log(arr2.slice(0));
        console.log(arr2.slice(1, -2));
        arr2.slice(1, 4);
        console.log(arr2);


        reverse  颠倒数组 
        参数  不需要
        返回值 颠倒之后的数组
        改变原数组
        var arr3 = [1, 2, 3, 4, 5];
        arr3.reverse();
        console.log(arr3.reverse());
        console.log(arr3);

        concat 合并多个数组 
         将参数里面的数组合并到当前数组中
        返回合并之后的数组
        不会改变原数组
        var arr6 = ['a', 'b'];
        var arr7 = [1, 2, 3];
        console.log(arr7.concat(arr6));
        console.log(arr7);
        console.log(arr6);
    </script>
</body>

</html>

11-冒泡排序

html lang="cn">

<head>
    <meta charset="UTF-8">
    <title>03-JavaScript</title>
    <style>

    </style>
</head>

<body>
    <script>
        // 冒泡排序  相邻的两两比较大小  
        // 比较完之后 直接交换位置
        var arr = [99, 5, 12, 6, 10, 100, 87, 34, 10, 2, 5, 27, 98, 31, 23];

        for (var j = 0; j < arr.length - 1; j++) {
            // 控制需要比较的大轮次
            for (var i = 0; i < arr.length - j - 1; i++) {
                // 控制每一次参与比较的元素
                if (arr[i] > arr[i + 1]) {
                    // 比较 之后交换位置
                    var temp = arr[i];
                    arr[i] = arr[i + 1];
                    arr[i + 1] = temp;
                    // 解构交换
                }
            }
        }

        console.log(arr);
    </script>
</body>

</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值