js--数组-元素增删改查、数组-相关方法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


1.unshift()方法

        头部新增unshift,返回新增之后长度,改变数组内部元素。

        unshift()在头部新增一项或多项元素

应用1:

         var arr=[];
        arr[1]="friend";

        console.log(arr.unshift("we","are","good","vary","much!"));
        console.log(arr);

运行结果:

2.shift()方法

        头部删除shift,返回是删除的那一项元素,改变数组内部元素

        shift()在头部删除元素,调用一次,只删除一个元素

应用2:

         var arr=[];
        arr[1]="friend";

        console.log(arr.unshift("we","are","good","vary","much!"));
        console.log(arr);
        console.log(arr.shift("we","are","good","vary","much!"));
        console.log(arr);

运行结果:

 3.push()pop()方法

      末尾 新增--长度        删除--被删除那一项

        push():末尾新增一项或者多项元素

        pop():末尾删除元素,每次调用一次只能删除一个元素

 // 方法1:末尾新增

        arr1[arr1.length]={name:"xx"}

        console.log(arr1);

        document.write(arr1[arr1.length-1]["name"])

 var arr1=[];

 arr1[0]="abc";

    for(var value of arr1){ //由数组长度决定循环次数

            console.log(value);

        }

 delete:可以删除某一项下标(对象属性),删除完数组长度不变,值消失undefined

例如:delete arr1[91]

举例2:

         var arr=[];
        arr[1]="friend";

        console.log(arr.unshift("we","are","good","vary","much!"));
        console.log(arr);

        console.log(arr.push("classmates","teacher"));
        console.log(arr.pop());
        console.log(arr);

运行结果:

4.数组-相关方法1

        1.查找   indexOf,lastindexOf

举例:

       var obj={name:"张三"};
       var arr=[20,100,150,200,20,250,300,true,false,obj]
       console.log( arr.indexOf(20,1)); 
       console.log( arr.indexOf(20)); 

         //  找引用类型
       console.log( arr.indexOf({name:"张三"})); 
       console.log( arr.indexOf(obj));             //9  正确的下标号

运行结果:

        2.截取 slice:截取并不改变原数组

举例:

       var obj={name:"张三"};
       var arr=[20,100,150,200,20,250,300,true,false,obj]

       var newArr=arr.slice(0);
        console.log(newArr);
        arr[arr.length-1]=newArr[newArr.length-1]
        console.log(arr);
        console.log('=======================');
        

        var str="";
        console.log(arr.indexOf==str.indexOf); //false
        console.log(arr.indexOf==arr.__proto__.indexOf); //true
        console.log(arr.__proto__==Array.prototype); //true
        console.log('=======================');


        console.log(str.indexOf==str.__proto__.indexOf); //true
        console.log(str.__proto__==String.prototype);   //true
        console.log('=======================');

运行结果:

 

        3.拼接:concat,并不改变原数组

举例:

        var arr1=[1,2,4]
        var arr2=[5,6,7]


        var arr3=arr1.concat(arr2);
        console.log(arr1,arr3);

运行结果:

         4.转换   JSON.stringify  .join(分隔符)

举例:

        var arr1=[1,2,4]
        var arr2=[5,6,7]
        var arr3=arr1.concat(arr2);



         var newstr="we are good friend";
        console.log(newstr.split(" ")); //字符串转数组



        console.log(arr3);
        console.log(String(arr3));
        console.log(arr3.toString());
        console.log( arr3.join("--"));
        console.log( arr3.join(""));
        console.log(JSON.stringify(arr3));

运行结果:

         5. 替换   .splice(2,1,33)

         参数1--被替换的下标索引

        参数2--被删除的个数length

        参数3--新增的target,个数不限

举例:

      var finalarr=[12,32,44,66,77,88]
        finalarr.splice(1,1,33);
        console.log(finalarr);

运行结果:

        5.1删除指定的n项数据

举例:

        var finalarr=[12,32,44,66,77,88]
        finalarr.splice(finalarr.indexOf(12),1)
        console.log(finalarr);

运行结果:

         5.2在指定位置新增n项

举例:

        var finalarr=[12,32,44,66,77,88]
        finalarr.splice(finalarr.indexOf(88)+1,0,99,111)
        console.log(finalarr);

运行结果:

5.数组-相关方法2

        (1)sort:数组方法排序 sort,默认按照ASCII编码排序,并且改变原数组内部秩序

举例:

        var arr=[100,145,345,789,-100,456,234,567]
        console.log( arr.sort() );
        console.log( arr );

运行结果:

        (2)通过减法运算,得到数字大小排序b-a降序,a-b 升序;

举例:

        var arr=[100,145,345,789,-100,456,234,567]

        arr.sort(function(a,b){
            // console.log(a,b);
            return b-a;
        });
        console.log(arr);

运行结果:

程序1:

       var arr1=[
            {name:"毛巾",price:300},
            {name:"铅笔",price:9},
            {name:"卷子",price:134},
            {name:"笔记本",price:30000},
            {name:"书桌",price:3000},
            {name:"凳子",price:10},
            {name:"水盆",price:50},

        ]


        arr1.sort(function(a,b){
            return a.price-b.price
        });

        console.log(arr1);

运行结果:

程序2:

        // 降序
        var arr2=["sally","Bob","yimmi","Moli","Ali","alse"]
        
        arr2.sort(function(a,b){
           if(b.toLocaleLowerCa>a.toLocaleLowerCase()){
               return 1;
           } else{
               return -1;
           }
        });

        console.log(arr2);

运行结果:

         (3)数组.reverse() 逆序,会该数组

程序2:

        // 降序
        var arr2=["sally","Bob","yimmi","Moli","Ali","alse"]
        
        arr2.sort(function(a,b){
           if(b.toLocaleLowerCa>a.toLocaleLowerCase()){
               return 1;
           } else{
               return -1;
           }
        });

        console.log(arr2);

        console.log(arr2.reverse());

运行结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值