数组API

作者: 婲魢銣佌亾荷姒堪 | 来源:发表于2018-09-17 20:10 被阅读0次

    Javascript数组API:

    1、将数组转化为字符串:2种:

    \color{blue}{1,String()}
        var str=String(str);
     将数组转化为字符串并分隔每个元素;

    var arr=[1,2,3];
    String(arr)
    "1,2,3"
    arr//[1, 2, 3]
    

    \color{red}{注:不改变原数组}
    \color{blue}{2,join()}
    var str=arr.join("自定义分隔符");
    将数组转化为字符串,可定义分隔符
    强调:如果join省略"",就等效于String
    \color{red}{注:不改变原数组}

    var arr=[1,2,3];
    arr.join('')//"123"
    
    var arr=[1,2,3];
    arr.join(' ')//"1 2 3"
    
    var arr=[1,2,3];
    arr.join(',')//"1,2,3"
    arr//[1, 2, 3]
    

    2、链接和获取子数组:

    \color{blue}{3,concat()}
    连接: var newArr=arr1.concat(值1,值2,arr2,...);
    将concat后的内容,和arr1拼接,组成新数组返回
    强调:concat的参数中包含数组,则打散数组,以单个元素拼接

    var arr1=[1,2,3],arr2=[4,5,6]
    arr1.concat(1,2)//[1, 2, 3, 1, 2]
    
    var arr1=[1,2,3],arr2=[4,5,6]
    arr1.concat(arr2)//[1, 2, 3, 4, 5, 6]
    

    \color{blue}{4,slice()}
    获取子数组:var subArr=arr.slice(starti,endi+1);
    获得arr中starti位置开始,到endi位置的所有元素组成的新数组
    \color{red}{ 强调:含头不含尾}
    省略第二个参数:表示从starti一直取到结尾
    可支持负数参数:-n表示倒数第n个元素,相当于length-n

    var arr=[1,2,3,4]
    
    arr.slice(0)//[1, 2, 3, 4]
    
    arr.slice(0,2)//[1, 2]
    
    arr.slice(-3)//[2, 3, 4]
    
    arr.slice(-3,-1)//[2, 3]
    
    arr.slice(0,2)//[1, 2]
    
    arr//[1, 2, 3, 4]
    

    \color{red}{注:不改变原数组}

    3、删除,插入,替换:(\color{red}{直接修改原数组}

    \color{blue}{5,}\color{orange}{Ⅰ.}\color{blue}{splice()}
    删除:var deletes=arr.splice(starti,n);
    删除arr中starti位置开始的n个元素
    返回被删除的元素组成的临时新数组

    var arr=[1,2,3,4]
    arr.splice(0)//[1, 2, 3, 4]
    
    var arr=[1,2,3,4]
    arr.splice(-1)//[4]
    
    var arr=[1,2,3,4]
    arr.splice(0,3)//[1, 2, 3]
    arr//[4]
    

    \color{red}{注:1.支持负数}
    \color{red}{2.直接修改原数组}
    \color{orange}{Ⅱ.}\color{blue}{splice()}
    插入:arr.splice(starti,0,值1,值2,...);
    在arr中starti位置,插入新值。旧值被向后顺移
    \color{red}{ 强调:}
    \color{red}{ 1.要插入的值,只能以单独的参数传入,不支持打散数组参数}
    \color{red}{ 2.starti表示第i个 不是数组索引}

    var arr=[1,2,3,4]
    arr.splice(2,0,22,33)
    arr//[1, 2, 22, 33, 3, 4]
    

    \color{orange}{Ⅲ.}\color{blue}{splice()}
    替换:var deletes=arr.splice(starti,n,值1,值2,...);
    删除arr中starti位置开始的n个元素,再在starti位置插入新元素
    删除的元素个数和插入的新元素个数不必相等

    4、反转数组元素:arr.reverse();

    \color{blue}{6,reverse()}

    arr=[1,2,3,4]
    arr.reverse()//[4, 3, 2, 1]
    arr//[4, 3, 2, 1]
    

    \color{red}{注:直接修改原数组}

    5、升序排列:arr.sort(); (直接修改原数组)

    \color{blue}{7,sort()}

    arr=[1,5,3,2]
    arr.sort()//[1, 2, 3, 5]
    
    arr=[1,5,32,2]
    arr.sort()//[1, 2, 32, 5]
    arr//[1, 2, 32, 5]
    

    \color{red}{ 注:1.将arr中的元素,以字符串方式升序,如上}
    \color{red}{2.sort()支持自定义排序方法(arrayObject.sort(sortby))}

    6、结尾出入栈:

    \color{blue}{8,push()}
    1.入栈:arr.push(值)
    将值压入数组结尾

    var arr=[1,2,3,4]
    arr2=arr.push(1)//5
    //返回新数组的长度
    arr//[1, 2, 3, 4, 1]
    

    \color{blue}{9,pop()}
    出栈:var last=arr.pop();
    弹出数组最后一个元素

    var arr=[1,2,3,4]
    arr.pop()//4
    //返回弹出的元素
    arr//[1,2,3]
    

    \color{red}{注:直接修改原数组}

    7、开头出入栈:

    \color{blue}{10,unshift()}
    入栈:arr.unshift(值);
    将值插入数组开头
    \color{blue}{11,shift()}
    出栈:var first=arr.shift();
    取出数组第一个元素

    var arr=[1,2,3,4]
    arr.unshift(22)//5
    arr//[22, 1, 2, 3, 4]
    
    var arr=[1,2,3,4]
    arr.shift()//1
    arr//[2, 3, 4]
    

    \color{red}{注:直接修改原数组}

    总结:

    \color{#6ac23c}{直接修改原数组:}
    \color{red}{1.arr.splice();}
    \color{red}{2.arr.reverse();}
    \color{red}{3.arr.sort(); }
    \color{red}{4.arr.push(值);arr.pop();}
    \color{red}{5.arr.unshift(值);arr.shift();}
    \color{#a456da}{不修改原数组:}
    \color{red}{1.String(arr);}
    \color{red}{2.arr.join("自定义分隔符");}
    \color{red}{3.arr1.concat(值1,值2,arr2,...);}
    \color{red}{4.arr.slice(starti,endi+1); }

    相关文章

      网友评论

          本文标题:数组API

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