JavaScript -- 总结 4 (小白)

数组的创建

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

<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>

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


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


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


        // 数组的创建2
        // 通过 new Array()  来创建数组  通过构造函数来创建
        // console.dir(Array);
        var arr2 = new Array();
        console.log(arr2);

        var students2 = new Array("张三", 28, true, "男", 175);
        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>

数组包含的属性

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

<head>
    <meta charset="UTF-8">
    <title>Document</title>
</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>

数组的访问和修改

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

<head>
    <meta charset="UTF-8">
    <title>Document</title>
</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] = "张小飞飞";

        console.log(arr);

        // 数组长度 只计算正整数
        var arr3 = [];
        arr3[-1] = "o((>ω< ))o";
        arr3[2.5] = "(¬︿̫̿¬☆)";

        console.log(arr3);
        console.log(arr3[-1]);
        console.log(arr3[2.5]);
    </script>
</body>

</html>

数组遍历

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

<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>

<body>
    <script>
        var arr = ['刘邦', '张良', '韩信', '萧何', '刘备', '韩信', '萧何'];
        // 使用 for 循环遍历数组
        for (var i = 0; i < arr.length; i++) {
            console.log(arr[i]);
        }
    </script>
</body>

</html>

多维数组       

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

<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>

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

        // 二维数组遍历
        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]); //9
    </script>
</body>

</html>

最大值和最小值

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

<head>
    <meta charset="UTF-8">
    <title>Document</title>
</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大,则修改最大值
                max = arr[i];
            }

            if (min > arr[i]) { // 当前元素比最小值min小,则修改最小值
                min = arr[i];
            }
        }
        console.log(max); // 73
        console.log(min); // 11
    </script>
</body>

</html>

 栈方法和队列方法

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

<head>
    <meta charset="UTF-8">
    <title>Document</title>
</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>

检索方法

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

<head>
    <meta charset="UTF-8">
    <title>Document</title>
</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)); // 4
    </script>
</body>

</html>

数组转字符串

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

<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>

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

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

</html>

数组其他方法

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

<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>

<body>
    <script>
        var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
        // 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>

冒泡排序

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

<head>
    <meta charset="UTF-8">
    <title>Document</title>
</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); // 从小到大排序 [2, 5, 5, 6, 10, 10, 12, 23, 27, 31, 34, 87, 98, 99, 100]
    </script>
</body>

</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值