zoukankan      html  css  js  c++  java
  • js 数组 api

    1.sort()

    arr.sort([function])

    对数组元素排序。在原数组上排序,并返回这个数组。

    (1)若没有function,按ascii字母顺序排序

    var arr = [10,60,300,50,80];
    arr.sort();
    console.log(arr) //[10,300,50,60,80]

    (2)若有function,该函数比较两个值,返回一个说明这两个值相对顺序的数字。

        a.若function(a,b)小于0,a排在b前面。

        b.若function(a,b)大于0,a排在b后面。

        c.若function(a,b)大于0,a与b相对位置不变。

    var arr = [10,60,300,50,80];
        arr.sort(function(a,b){
          return a - b;
        });
        console.log(arr);//[10,50,60,80,300]

    var objArr = [ {id:1,count:12}, {id:2,count:3}, {id:3,count:8}, {id:4}, {id:5,count:20} ]; objArr.sort(function(a,b){ if(a.count < b.count){ return -1; } if(a.count > b.count){ return 1; } return 0; }) console.log(objArr);//[{id:2,count:3},{id:3,count:8},{id:1,count:12},{id:4},{id:5,count:20}]

    2.concat()

    arr.concat([item],[item],[...],[item])

    连接两个或多个数组,不修改原数组,返回一个新数组。

    item可以是具体的值,也可以是数组。若item是数组,把数组的元素添加到目标数组中。若没有item,生成一个目标元素的副本。

    var arr = [10,60],
        arr1 = [20,30],
        arr2 = [[30,10],[12]];
    var newArr = arr.concat(arr1,arr2,0);
    console.log(newArr);//[10,60,20,30,[30,10],[12],0]    

    3.splice()

    arr.splice(start,[deleteCount],[item],[item],[...],[item])

    插入、删除或替换数组元素,修改原数组。返回删除的元素组成的数组,若没有删除元素,返回一个空数组。

    start:规定添加、删除元素的位置。start从0开始计算,删除、添加操作都包含start这个位置。start超过数组长度,添加元素从数组末尾开始添加。若start为负值,表示从数组末尾开始的第几位,-1表示倒第一个元素,-2表示倒第二个元素。

    deleteCount:如果没有此参数,删除从start开始到结尾的所有元素。

    item:添加的新元素。

    var arr = [10,5,30,29,6,30],
          rtArr;
        rtArr = arr.splice(1,1);
        console.log(rtArr);//[5]
        console.log(arr);//[10,30,29,6,30]
    
        rtArr = arr.splice(4,0,100,120);
        console.log(rtArr);//[]
        console.log(arr);//[10,30,29,6,100,120,30]
    
        rtArr = arr.splice(-2,2,1000,1001);
        console.log(rtArr);//[120,30]
        console.log(arr);//[10,30,29,6,100,1000,1001]

    4.slice()

    arr.slice(start,end)

    返回一个新数组,包含从start到end(不包含该元素)的arr中的元素。

    若start或end的值为负值,表示从末位开始的第几位,-1表示倒数第一个,-2表示倒数第2个,以此类推。

    var arr = [10,5,30,29,6,30],
          newArr;
    
        newArr = arr.slice(-4,-2);
        console.log(newArr);//[30,29]
    
        newArr = arr.slice(1,5);
        console.log(newArr);//[5,30,29,6]

    5.reverse()

    arr.reverse()

    颠倒数组元素的位置,改变原来的数组。

    var arr = [10,5,30,6,30];
        arr.reverse();
        console.log(arr);//[30,6,30,5,10]

    6.unshift(), shift(), pop(), push()

    arr.unshift(elem1,[elem2],[...],[elemN])

    向数组的开头添加一个或更多元素,并返回新的数组的长度。

    arr.shift()

    删除数组的第一个元素,并返回数组的第一个元素的值。

    arr.pop()

    删除数组的最后一个元素,并返回数组的最后一个元素。

    arr.push(elem1,[elem2],[...],[elemN])

    向数组的末尾添加一个或多个元素,并返回新的数组的长度。

    7.join()

    arr.join([separator])

    将数组中的所有元素连接成一个字符串。

    如果没有参数separator,默认使用逗号作为分隔符。

    ES5(数组)

    浏览器支持:

    Opera 11+

    Firefox 3.6+

    Safari 5+

    Chrome 8+

    Internet Explorer 9+

    8.forEach()

    arr.forEach(callbackfn,[thisArg])

    遍历数组的每个元素,并且执行一次callbackfn。

    callbackfn(value,index,arr):value表示数组当前项的值,index表示当前项的索引,arr表示数组本身。

    thisArg:callbackfn函数中this关键字引用的对象。如果省略thisArg,则undefined将用作this值。如果 thisArg 值为 undefined或 null,函数的 this 值取决于当前执行环境是否为严格模式(严格模式下为 undefined,非严格模式下为全局对象)。

    var arr = [10,5,30,6,30];
        arr.forEach(function(value,index,array){
           if(index == 0){
             console.log(array);
             console.log(this);
           }
           console.log((index+1)+':'+value);
        })

        

  • 相关阅读:
    python全栈闯关--16-匿名函数
    python全栈闯关--15-内置函数
    python全栈闯关--14-生成器进阶
    示例库
    MySQL的远程连接
    前后端传输编码方式
    后端接收前端时间参数
    控制器接参的空值问题
    MyBatis模糊查询的几种方式
    MySQL常用函数
  • 原文地址:https://www.cnblogs.com/fe-huahai/p/5630488.html
Copyright © 2011-2022 走看看