zoukankan      html  css  js  c++  java
  • 数组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()//[1, 2, 32, 5]
    arr//[1, 2, 32, 5]

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

      2.sort()支持自定义排序方法(arrayObject.sort(sortby)),这个以后再说啦~


    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); 

  • 相关阅读:
    Activity使用startActivityForResult时出现onActivityResult()不执行的问题
    Android AppWidget
    linux 条件变量
    effective c++:private继承
    effective c++:virtual函数的替代方案
    effective c++:inline函数,文件间编译依存关系
    effective c++:dynamic_cast,避免返回handles指向对象内部
    effective c++:引用传递与值传递,成员函数与非成员函数
    effective c++:资源管理
    effective c++:对象的赋值运算
  • 原文地址:https://www.cnblogs.com/yaokunlun/p/6393965.html
Copyright © 2011-2022 走看看