• 引用类型 操作方法


    concat()方法    复制
     concat 复制,复制后给新数组添加新元素,多个数组连接形成数组
    可以根据数组中的所有项创建一个新数组。这个方法会先创建当前数组一个副本,然后将接收到的参数添加到这个副本的末尾,最后返回新构建的数组。
    传递给 concat()方法的是一或多个数组
    若传递的值不是数组,这些值就会被简单地添加到结果数组的末尾
    var arr=[1,3,5];
     var arr1=arr.concat(2,4,6,[7,8,9]);
     alert(arr1);//1,3,5,2,4,6,7,8,9
     

    concat重构:

    function concat(arr){
    var array=[];
    var index=0;
    for(var i=0;i<arr.length;i++,index++){
    array[index]=arr[i];
    }
    for(var j=1;j<arguments.length;j++,index++){
    if(arguments[j].constructor===Array){
    for(var k=0;k<arguments[j].length;k++,index++){
    array[index]=arguments[j][k];
    }
    index--;
    }else{
    array[index]=arguments[j];
    }
    }
    return array;
    }

     
     
    slice()方法        复制
    它能够基于当前数组中的一或多个项创建一个新数组
    slice()方法可以接受一或两个参数,即要返回项的起始和结束位置

     arr.slice(从什么位置开始,截取到什么位置之前);//返回一个新数组,原数组不改变
     var arr1=arr.slice();//复制一个新数组
     var arr1=arr.slice(1);//从第几项复制到尾部
     var arr1=arr.slice(-2);//从倒数第二位复制到尾部
     var arr1=arr.slice(2,3);//从第二位复制到第三位之前

    eg:

    var colors = ["red", "green", "blue", "yellow", "purple"];
    var colors2 = colors.slice(1);
    var colors3 = colors.slice(1,4);
    alert(colors2); //green,blue,yellow,purple
    alert(colors3); //green,blue,yellow

    slice重构:

    function slice(arr,start,end){
    start=Number(start);
    end=Number(end);
    if(isNaN(start)) start=0;
    if(isNaN(end)) end=arr.length;
    if(start<0) start=start+arr.length;
    if(end<0) end=end+arr.length;
    var a=[];
    for(var i=start,j=0;i<end;i++,j++){
    a[j]=arr[i];
    }
    return a;
    }
    var arr1=slice(arr,2,-1);
    console.log(arr1,arr);

    splice()方法    删除   插入   替换

     给数组中添加、删除、替换一个或者多个元素,返回被删除元素组成的数组

     
    删除:可以删除任意数量的项,只需指定 2 个参数:要删除的第一项的位置和要删除的项数
    插入:可以向指定位置插入任意数量的项,只需提供 3 个参数:起始位置、0(要删除的项数)和要插入的项。如果要插入多个项,可以再传入第四、第五,以至任意多个项。
    替换:可以向指定位置插入任意数量的项,且同时删除任意数量的项,只需指定 3 个参数:起始位置、要删除的项数和要插入的任意数量的项。插入的项数不必与删除的项数相等。

    arr.splice(从什么位置开始,删除多少个元素,添加的元素...);
      var arr=[1,3,5,7,9,2,4,6,8,10];
    // var arr1=arr.splice();//创建一个空数组

    // var arr1=arr.splice(0);//将数组的所有元素传递给新数组

    // 负数指从后向前数
    // var arr1=arr.splice(-2);//从数组的倒数第二位开始截取到尾部

    // var arr1=arr.splice(2,2);//从第二位开始删除2个元素

    // var arr1=arr.splice(2,0,12,14);//插入元素13,14,插入在第二位

    // var arr1=arr.splice(2,2,12,14);//替换元素,删除两位并且插入12,14
    // console.log(arr1,arr);

    splice重构:

    function splice(arr,start,count){
    var a=[];
    start=Number(start);
    count=Number(count);
    if(isNaN(start)) return a;
    if(start<0) start+=arr.length;
    if(isNaN(count)) count=arr.length-start;
    for(var i=start,j=0;i<arr.length;i++,j++){
    if(j<count)a.push(arr[i]);
    arr[i]=arr[i+count];
    }
    for(var l=0;l<arguments.length-3;l++){
    for(var m=arr.length-1;m>=start+l;m--){
    arr[m+1]=arr[m];
    }
    }
    for(var n=3;n<arguments.length;n++){
    arr[start+n-3]=arguments[n];
    }
    for(var k=0;k<count;k++){
    arr.length--;
    }
    return a;
    }
    var arr1=splice(arr,-2,2,10,11,12);
    console.log(arr1,arr);

  • 相关阅读:
    【36氪收录】观「招商银行」隐私计算布局的思考
    如何用cmake编译
    docker | Ubuntu16.04安装与卸载docker
    通过删除注册表重新获得软件试用期
    k8s | 重启Kubernetes Pod的几种方式
    2021年终总结(一)
    凡是过往、皆为序章20210917PPT分享
    多厂商容器平台开发系统性总结
    VS2022安装.NetFramework4.0目标包的方法
    C# Winform窗体继承过程中,TableLayoutPanel是不支持继承的
  • 原文地址:https://www.cnblogs.com/zmlAliIqsgu/p/12129457.html
Copyright © 2020-2023  润新知