• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

第三章.数组

一、数组的创建方式
// 第一种方式:new创建
        //1.数组的创建
        var fruits = new Array(); //开辟六个空间

        // 2.赋值
        fruits[0]="香蕉";
        fruits[1]="苹果";


        // 3.调用变量
        console.log(fruits);
        console.log(fruits[0]);
        console.log(fruits[1]);

 // 第二种方式 :字面量方式
        var student = ["王峰", "李易峰", "薛之谦", "张杰"];
        console.log(student[0]);
        console.log(student[1]);
        // 数组的长度 长度的值-1等于最大下标
        console.log(student.length);

        // 如果一个元素不在数组中,通过indexof()方法返回的是-1
        // indexOf()可以判断某个值是否可以在数组中
        let j=student.indexOf("李四");
        console.log(j);
 
二、数组的增,删,改,查
1.(数组的添加)
 // 数组的操作:增
        var numS = [100, 200, 300, 400, 500, 600];
        // 1.增加元素--在元素末尾添加一个元素
         numS[6] = 9999;
        // 通过下标
        numS[numS.length] = 8888;
        console.log(numS);

        //2. 通过数组的方法push()
        var newenght = numS.push(777);
        console.log(numS);
        console.log(newlenght);

        //3.向前面添加元素unshift()方法
        newlenght = nums.unshift(8488);
        console.log(numS);
        console.log(newlenght);

        //4.向中间插入一个元素 ()方法
        //向元素的第三个位置添加32
        numS.splice(3, 0, 32);
        console.log(numS);

        //arr:表示操作的数组,
        //index:表示插入的位置
        //newNum:插入的元素(数字)
        //myInsert:方法名
        function myInsert(arr, index, newNum) {
         // 1.找到位置
        // 2.位置之前的元素不动,之后的元素后移
        for (var i = arr.length - 1; i >= index; i--) {
                arr[i + 1] = arr[i];
            }

            // 3.插入新的元素
            arr[index] = newNum;
        }

        var fruits = ["apple", "orange", "banana", "pear"];
        // 向orange后面加kiwi
        myInsert(fruits, 2, "kiwi");
        console.log(fruits);
        // 向banana后面加lemon
        myInsert(fruits,4,"lemon");
        console.log(fruits);
 
2.(数组的删除)
         // 定义数组
        var numS=[100,200,300,400,500];
        // 删除元素
        //1. delete numS[1];
        console.log(numS);
        console.log(numS[1]);

        //2.删除最后一个元素pop()方法
        numS.pop();
        console.log(numS);

        //删除最前面的元素shift()方法
        numS.shift();
        console.log(numS);

        //删除指定元素 splice括号里面的数表示第几个位置删除几个元素
        numS.splice(1,1);
        console.log(numS);
 
3.(数组的修改)
var names = ["tom", "jerry", "lucy", "jackson"];
        //修改
        //  1.修改第二个名字薛之谦 ,直接用下标修改
        names[1] = "薛之谦";
        console.log(names);


        // 2.使用splice()方法,将第三个名字改成张杰
        names.splice(2, 1, "张杰");
        console.log(names);
 
4.数组的查询
var dogs = ["金毛", "二哈", "泰迦", "萨摩", "阿拉斯加", "中华田园犬"];
        //1.查询指定元素
        console.log(dogs[0]);

        // 2.查询全部元素并打印
        console.log(dogs);

        // 使用for循环对数组进行遍历操作
        for (var i = 0; i < dogs.length; i++) {
            dogs[i] += "狗";
            console.log(dogs[i]);
        }

        // 3.找出二哈的索引下标
        var index = dogs.indexOf("二哈");
        console.log(index);

        // 4.最大最小值
        var numS = [2, 33, 14, 66, 122, 38 ,33];
        var max = numS[0];
        var min = numS[0];
        for (var j = 0; j < numS.length; j++) {
            if (max < numS[j]) {
                max = numS[j];
            }

            if (min > numS[j]) {
                min = numS[j];
            }
        }
        console.log(max, min);

        //5.查询是否包含指定的值
       let isExists =numS.includes(66);
       console.log(isExists);

       //6.元素最后出现的位置
       let lastIndex=numS.lastIndexOf(33);
       console.log(lastIndex);

       //  7.另一种循环for-in  针对于集合的一种循环迭代方式
       //一下是这种方式的简写for (var k=0;k<numS.lenght;k++)
       for(var k in numS){
        console.log(numS[k]);
       }
 
三、数组的迭代
var numS = [11, 22, 33, 44, 55, 66, 77, 88, 99];
        var numS2 = [];
        var max = [];
        //1.forEach()  高阶函数
        //利用forEach()打印数组的元素
        // 2.复制新数组和nums2里面的值相同(真克隆)
        // item 表示数组的个数 index表示数组的下标
        numS.forEach(function (item, index) {
            console.log(item, index);
        // 将numS的元素复制给numS2
            numS2[index] = item;

         //找最大的元素
            if (max < item) {
                max = item;
            }

        })
        console.log(numS);
        console.log(numS2);
        console.log(max);
 
        //假克隆(引用传递)
        var numS3 = numS;
        console.log(numS3);

        numS3[0] = 8080;
        console.log(numS);
 
 
四、数组的操作杂项
var chars = ["a", "b", "c", "d"];
        // 1.数组元素的倒序输出
        for (var i = chars.length - 1; i >= 0; i--) {
            console.log(chars[i]);
        }

        // 2.数组元素的反转用reverse()方法
        chars.reverse();
        console.log(chars);

        // 3.把数组的所有元素放入一个字符串  join(参数) 参数:连接数组元素的连接符
        var arrStr = chars.join('');
        console.log(arrStr);

        // 4.把两个或者更多的数据组连接用concat()方法
        var fruits = ["banana", "strawberry", "kiwi", "apple", "lemon"];
        var names = ["tom", "jerry", "lucy"];
        var sports = ["足球", "篮球", "排球"];
        var bigArr = fruits.concat(names).concat(sports);
        console.log(bigArr);
 
 
五、数组的排序
var numS = [33, 13, 24, 3, 16, 99, 123, 88];
        console.log(numS);

        // 利用sort()方法排序
        //默认是正序
        numS.sort(function (a, b) { return a - b });
        console.log(numS);
        //倒序排序
        numS.sort(function (a, b) { return b - a });
        console.log(numS);


        //自己写一个冒泡排序
        function mySort(arr) {
            // 外层循环比较轮次 length-1
            for (var i = 0; i < arr.length - 1; i++) {
                // 内层循环表示每轮比较的次数 length-1-i
                for (var j = 0; j < arr.length - 1 - i; j++) {
                    // 比较相邻的两个数,前一个数大于后一个数
                    var temp;
                    if (arr[j] > arr[j + 1]) {
                        temp = arr[j];
                        arr[j] = arr[j + 1];
                        arr[j + 1] = temp;
                    }
                }
            }
        }

        var numS2 = [33, 13, 24, 3, 16, 99, 123, 88];
        mySort(numS2);
        console.log(numS2);
       
        foreach()回调函数
        案列:查询a出现的次数
        var arr = ["b", "a", "c", "a", "g", "j", "a", "c", "b"];
        var count = 0;
        // forEach对每个元素都执行一次回调函数
        arr.forEach(function (item, index) {
            if (item === "a") {
                count++;
            }
        })
        console.log(count);

posted on 2022-10-04 21:27  青&&风  阅读(23)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3