• 数组API汇总


    数组API汇总

     

    Javascript数组API:

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

    1、var str=String(str);   

     将数组转化为字符串并分隔每个元素;  

    复制代码
    var arr=[1,2,3];
    String(arr)
    "1,2,3"
    arr//[1, 2, 3]
    复制代码

     注:不改变原数组

    2,、var str=arr.join("自定义分隔符"); 
         将数组转化为字符串,可定义分隔符
         强调:如果join省略"",就等效于String

    注:不改变原数组

    复制代码
    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、链接和获取子数组:
    1、连接:   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]
    复制代码

    2、获取子数组:var subArr=arr.slice(starti,endi+1);
         获得arr中starti位置开始,到endi位置的所有元素组成的新数组
         强调:含头不含尾
         省略第二个参数:表示从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]
    复制代码

    注:不改变原数组

    3、删除,插入,替换:(直接修改原数组)
     1、删除: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]
    复制代码

    注:1.支持负数

      2.直接修改原数组


    2、插入:arr.splice(starti,0,值1,值2,...);
         在arr中starti位置,插入新值。旧值被向后顺移
         强调:

      1.要插入的值,只能以单独的参数传入,不支持打散数组参数 

      2.starti表示第i个 不是数组索引

      

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


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

    复制代码
    var arr=[1,2,3,4]
    arr.splice(2,2,5,6)
    arr//[1, 2, 5, 6]
    复制代码

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

    复制代码
    arr=[1,2,3,4]
    arr.reverse()//[4, 3, 2, 1]
    arr//[4, 3, 2, 1]
    复制代码

    注:直接修改原数组

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

    复制代码
    arr=[1,5,3,2]      //默认升序排列
    arr.sort()//[1, 2, 3, 5]
    
    arr=[1,5,32,2]
    arr.sort((a,b)=> a-b)//[1, 2, 32, 5]
    arr//升序,从小到大排列  [1,2,5,32]

    arr=[1,5,32,2]
    arr.sort((a,b) => b-a)//[1, 2, 32, 5]
    arr//降序,从大到小排列[32,5,2,1]
    复制代码

    注:1.将arr中的元素,以字符串方式升序,如上

      2.sort()支持自定义排序方法sort(function(a,b){return a-b  // 升序 })

                                                        sort(function(a,b){return b-a  / /降序 })


    6、结尾出入栈:
    1、入栈:arr.push(值)
         将值压入数组结尾

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

    2、出栈:var last=arr.pop();
        弹出数组最后一个元素

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

    注:直接修改原数组

    7、开头出入栈:
    1、入栈:arr.unshift(值);
        将值插入数组开头
    2、出栈: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]
    复制代码

    注:直接修改原数组

    总结:

    直接修改原数组:

    1.arr.splice();

    2.arr.reverse();

    3.arr.sort(); 

    4.arr.push(值);arr.pop();

    5.arr.unshift(值);arr.shift();

    不修改原数组:

    1.String(arr);

    2.arr.join("自定义分隔符"); 

    3.arr1.concat(值1,值2,arr2,...);

    4.arr.slice(starti,endi+1); 

  • 相关阅读:
    jQuery 属性操作
    Codeforces Round #679 (Div. 2, based on Technocup 2021 Elimination Round 1) (个人题解)
    (模板)graham扫描法、andrew算法求凸包
    POJ
    Codeforces Round #677 (Div. 3) (A
    第十三场训练赛
    [kuangbin] 专题13 基础计算几何 题解 + 总结
    特殊的数据结构:主席树
    【计算几何03】距离计算
    Java实现 LeetCode 803 打砖块 (DFS)
  • 原文地址:https://www.cnblogs.com/dingxingxing/p/10941788.html
Copyright © 2020-2023  润新知