美文网首页
数组 方法

数组 方法

作者: BJ呀呀呀 | 来源:发表于2021-05-14 20:22 被阅读0次

    一.什么是数组

    就是一组数组,它是一个特殊对象类型

    !!!判断是否为真数组

    typeof([ ]);//object,采用Array.isArray([ ]),是数组返回true,不是数组返回false
    

    二.数组的创建方式

    • 1.语法糖(数组的字面表达试)
    var arr[ ];
    
    • 2.实例化(new)数组,new创建
    var arr = new Array(10);
    //new Array的时候,传入一个数值,它表示数组的长度
    
    var arr Array();
    

    三.数组的length属性

    数组的长度是可以被修改

    var arr [11,22,33,44,55];
    console.log(arr.lenght);//4
    //修改了数组的长度
    arr.lenghth =1
    console.log(arr);//[11]
    //如果再把长度改回来,原数组的成员已经丢失
    

    四.数组的循环

    • 1.遍历(循环)数组
    var arr = [11,22,33,44,55];
    for (var i=0;i<arr.length;i++){
    //console.log();
    console.log(i,arr[i]);
    }
    
    • 2.数组还可以使用 for in
      当数组的下标不是数值的时候,那需要使用for in
    var arr ["你好",true,100];
    for (var k in arr){
    console.log(k;arr[k]);
    }
    
    • 3.特殊场景 使用 for...in
    var arr = [ ];
    arr ["a"]="周杰伦"
    arr ["b"]="刘德华"
    arr ["c"]="蔡依林"
    console.log(arr);
    for(var key in arr){
    console.log(key,arr[key]);
    }
    
    !!!!for与for in

    在遍历的时候,for的下标是数值,根据length长度,决定遍历次数
    for in,的下标是字符串,根据真实成员个数,决定遍历次数

     //数组的的下标,特殊处理
    //数组的下标可以是任意类型,只在for循环的时候iu,不会被遍历到
    //for循环的下标只能是数值类型
            var arr=[11,22,33,44];
            arr[-1]="你好";
            arr[1.2]="hhh";
            arr[true]="我我";
            console.log(arr);
    
            for(var i=0;i<arr.length;i++){
                console.log(arr[i]);
            }
    
            for(var key in arr){
                console.log(arr[key]);
            }
    

    五.数组的方法

    • 1.pop()删除数组的最后一位,返回被删除的元素,改变原数组
    var arr [11,22,33,44,55 ];
    arr.pop();//55
    console.log(arr)//[11,22,33,44]
    
    • 2.push()往数组的最后一位添加新的多个成员,返回新数组的长度,改变原来数组
    • 3.unshift()往数组的第一个位置添加多个成员,返回新数组的长度,改变原来数组
    • 4.shift()删除数组第一位的成员,返回被删除的成员,改变原来数组
    • 5.sort()它是根据ascll码值,进行比较,如果成员十位数以上,就不准备,就需要在sort()里定义一个函数,改函数2个参数,a-b,升序,b-a,降序
    var arr = [11,22,33,44,66];
    arr.sort(function(a,b){
      retrun a-b;
    })
    
    • 6.reverses()倒叙
    • 7concat ()合并,可以合并数组,还能合并其他类型的数据,也能一次性合并多个条件 返回一个新得数组,不会改变原来得数组
    var arr1=[11,22];
    var arr2=["你好";"周杰伦"];
    var arr3 = arr1.concat(arr2)
    //多个合并
    var arr3 = arr1.concat(arr2,99,true,[ ])
    

    8.slice 截取 不会改变原数组

    slice (开始位置,结束位置)   截取   结束位置到前一位(不包括结束位置)
    slice(开始位置) 从开始位置到最后一位   //只写一个参数的话 
    不会改变原数组
     console.log("=====slice");
         var aaa=[11,22,33,44,55]
        console.log(aaa.slice(2,4));//[33,44]
        console.log(aaa);//返回原数组
    
    • 9 splice() 会改变原数组
    2个参数: 删除  splice(下标(开始位置),删除个数)  返回被删除的元素.返回一个数组
    3个参数:splice(下标,0,插入几个)
    0,插入  1以上是替换(替换的个数)
    //(3,1,"你好")
    
    //splice  (开始位置i,删除个数)
    //        (开始位置i,0,插入个数)
    //        (开始位置i,1,替换的内容)
    
    • 10 join()
    //默认返回带有 , 的字符串
    //也可以指定格式
    //如果是空字符串,就会返回一段字符串
    
    

    总结

    不改变原数组的:

    concat:连接多个数组,返回新的数组
    join:将数组中所有元素以参数作为分隔符放入一个字符
    slice:slice(start,end),返回选定元素
    map,filter,forEach,some,every等不改变原数组

    改变原数组的:

    shift:将第一个元素删除并且返回删除元素,空即为undefined
    unshift:向数组开头添加元素,并返回新的长度
    pop:删除最后一个并返回删除的元素
    push:向数组末尾添加元素,并返回新的长度
    reverse:颠倒数组顺序
    sort:对数组排序
    splice:splice(start,length,item)删,增,替换数组元素,返回被删除数组,无删除则不返回

    相关文章

      网友评论

          本文标题:数组 方法

          本文链接:https://www.haomeiwen.com/subject/rusfkltx.html