04-JavaScript

目录

数组的创建

 数组包含的属性

 数组的访问与修改

数组遍历 

多维数组 

最大值和最小值 

 栈方法和队列方法

检索方法 

数组转字符串 

其他 

冒泡排序 


数组的创建

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


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


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


        // 数组的创建2
        // 通过 new Array()  来创建数组  通过构造函数来创建
        // var arr2 = new Array();
        // console.log(arr2);
        // var students = ["大帅哥", 28, true, "🚹", 190];
        // var students2 = new Array("大美女", 18, true, "🚺", 180);
        // console.log(students2);



        // 直接量创建的数组可以在中间添加空值
        var arr3 = [1, 2, , , 5, 6];

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

        console.log(arr3);
        console.log(arr4);        //    代码会报错,无法执行
    </script>

 数组包含的属性

 <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>

 数组的访问与修改

        
<script>
        // 数组的访问 
        // 通过索引下标 来访问数组中的元素
        // 数组名称[索引下标]
        
        var arr = ['刘邦', '项羽', '虞姬'];
        // 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] = "范增";
        arr[6] = "孙悟空";
        arr[-3] = "猪八戒";
        arr[-1] = "沙僧";
        arr[-2] = "唐僧";
        arr[2.5] = "观世音";
        arr[1.5] = "佛珠";


        console.log(arr);
        console.log(arr.length);

</script>

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

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

数组遍历 

<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>

多维数组 

 <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]);
            }
        }

    </script>

最大值和最小值 

 <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>

 栈方法和队列方法

 <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>

检索方法 

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

数组转字符串 

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

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

其他 

 <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>

冒泡排序 

<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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值