js/数组

1、Array.isArray( )

  作用:判断参数是否为数组,是数组返回true,否则返回false

    var  arr  =  [1, 2, 3]

    Array.isArray( arr )  // true 

2、arr.valueOf( )

  作用:返回数组本身

    var  arr  =  [1, 2, 3]

    arr.valueOf( )  // [1, 2, 3]

3、arr.toString( )

  作用:返回数组的字符串形式

    var  arr  =  [1, 2, 3]

    arr.toString( )  // '1,2,3'

    var  arr1  =  [1, 2, 3,[4,5,6]]

    arr1.toString( )  // '1,2,3,4,5,6'

4、arr.push( )

  作用:在数组的末端添加一个或多个元素,并返回添加新元素后的数组长度,该方法会改变原数组

    var  arr  =  [ 5]

    arr.push(1,2,true,{ })  // 5

    arr  // [5,1,2,true,{ }]

5、arr.pop( )

  作用:删除数组的最后一个元素,并返回该元素,该方法会改变原数组

    var  arr  =  [1,2,3,4]

    arr.pop()  // 4

    arr  // [1,2,3]

6、arr.unshift( )

  作用:在数组的第一个位置添加一个或多个元素,并返回添加新元素后的数组长度,该方法会改变原数组

    var  arr  =  [6 ]

    arr.unshift(1,2)  // 3

    arr  // [1,2,6]

7、arr.shift( )

  作用:删除数组的第一个元素,并返回该元素,该方法会改变原数组

    var  arr  =  [1,2,3,4,5]

    arr.shift( )  // 1

    arr  // [2,3,4,5]

8、arr.join( )

  作用:以指定参数作为分隔符,将所有数组成员连接为一个字符串返回,如果没有参数,默认用逗号分隔

    var  arr  =  [1,2,3,4]

    arr.join( ' ' )  // '1 2 3 4'

    arr.join( '|' )  // '1|2|3|4'

    arr.join()  // 1,2,3,4'

  如果数组成员是undefined或null或空位,会被转成空字符串

    [1,,3].join( '-' )  // '1- -3'

9、arr.concat( )

  作用:用于多个数组的合并,返回一个新数组,原数组不变

    [1,2,3].concat([4,5,6])  // [1,2,3,4,5,6]

    [1].concat({a:1})  // [1,{a:1}]

    [1].concat(4,5,6)  // [1,4,5,6]

10、arr.reverse( )

  作用:用于颠倒排列数组元素,返回改变后的数组,该方法将改变原数组

    var  arr  =  [1,2,3,4,5]

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

    arr   // [5,4,3,2,1]

11、arr.slice( )

  作用:用于提取目标数组的一部分,返回一个新数组,原数组不变

  它的第一个参数为起始位置(从0开始,包含该位置),第二个参数为终止位置(不包含该位置),如果省略第二个参数,则一直返回到原数组的最后一个成员

    var  arr  =  [1,2,3,4,5]

    arr.slice( 0 )  // [1,2,3,4,5]

    arr.slice( 1 )  // [ 2,3,4,5 ]

    arr.slice( 1,2 )  // [ 2 ]

    arr.slice(  )  // [1,2,3,4,5]

    arr.slice( -2 )  // [ 4,5 ]

    arr.slice( -2,-1 )  // [ 4 ]

  如果第一个参数大于等于数组长度,或者第二个参数小于第一个参数,则返回空数组

    var  arr  =  [1,2,3]

    arr.slice(4)  // [ ]

    arr.slice(2,1)  // [ ]

12、arr.splice( )

  作用:删除原数组的一部分成员,并可以在删除的位置添加新的数组成员,返回值是被删除的元素,该方法会改变原数组

    arr.splice(start,count,add1,add2,...)

  splice的第一个参数是删除的起始位置(从0开始),第二个参数是被删除的元素个数,如果后面还有更多的参数,则表示这些就是要被插入数组的新元素

  删除数组元素

    var  arr  =  [1,2,3,4,5,6,7]

    arr.splice(4,2)  // [5,6]

    arr  // [1,2,3,4,7]

  删除并添加数组元

    var  arr1  =  [1,2,3,4,5,6,7]

    arr1.splice(4,2,8,9)  //[5,6]

    arr1  // [1,2,3,4,8,9,7]

  如果起始位置是负数,就表示从倒数位置开始删除

    var  arr1  =  [1,2,3,4,5,6,7]

    arr1.splice(-4,2,8,9)  //[4,5]

    arr1  // [1,2,3,8,9,6,7]

  如果只是单纯的插入新元素可以将第二个参数设置为0

    var  arr =  [1,2,3,4]

    arr.splice(2,0,8,9)  // [ ]

    arr  // [1,2,8,9,3,4]

  如果只提供一个参数,表示将原来的数组在指定位置拆分成两个数组

    var  arr  =  [1,2,3,4,5,6,7]

    arr.splice(3)  // [4,5,6,7]

    arr  // [1,2,3]

13、arr.sort( )

  作用:对数组成员进行排序

  从小到大排列

    var  arr  = [1,6,2,56,14,77,98]

    arr.sort(function(a,b){

      return  a - b

    })  // [1,2,6,14,56,77,98]

 

  从大到小排列

    var  arr  = [1,6,2,56,14,77,98]

    arr.sort(function(a,b){

      return  b - a

    })  // [98,77,56,14,6,2,1]

  特殊用法:

    [

      {name:'aa',age:30},

      {name:'bb',age:10},

      {name:'cc',age:20}

    ].sort(function(a,b){

      return a.age - b.age

    })

  // [

    {name:'bb',age:10},

    {name:'cc',age:20},

    {name:'aa',age:30}

  ]

14、arr.map( )

  作用:将数组的所有成员依次传入函数,然后把每一次的执行结果组成一个新数组返回,不改变原数组

  三个参数:当前成员,当前索引,数组本身

    var  arr =  [1,2,3]

    arr.map(function(item,index,arr){

      return  n + 1

    })

    // [2,3,4]

    arr  // [1,2,3]

  如果数组有空位,map方法的回调函数在这个位置不会执行,会跳过数组空位

  map方法不会跳过undefinednull,但是会跳过空位。

    var fn = function (n){ return  'a' }

    [1,undefined,2].map( fn )  // [ 'a', 'a', 'a']

    [1,null,2].map( fn )  // [ 'a', 'a', 'a']

    [1, ,2].map( fn )  // [ 'a', , 'a']

15、arr.forEach( )

  作用:forEach方法和map方法相似,也是对数组的所有成员依次执行参数函数,但是,forEach方法不返回值,只用来操作数据,所以如果数组遍历的目的是为了得到返回值,就使用map方法,否则使用forEach方法

  注意:forEach方法无法中断执行,总是会将所有成员遍历完,如果希望符合某种条件时,就中断遍历,要使用for循环

  forEach方法不会跳过undefinednull,但是会跳过空位。

16、arr.filter( )

  作用:用于过滤数组成员,满足条件的成员组成一个新的数组返回,不改变原数组

    var  arr  = [1,2,3,4,5]

    arr.filter(function(item,index,arr){

      return item > 3

    })

    // [4,5]

17、arr.some( )

  作用:如果有一个成员返回值是true,则整个some方法的返回值就是true,否则返回false

    var  arr  = [1,2,3,4,5]

    arr.some(function(item,index,arr){

      return item > 3

    })

    // true

18、arr.every( )

  作用:如果数组中的每一个成员返回值是true,则整个every方法的返回值才是true,否则返回false

    var  arr  = [1,2,3,4,5]

    arr.some(function(item,index,arr){

      return item > 3

    })

    // false

  注意:对于空数组,some方法返回false,every方法返回true,回调函数都不会执行

    function  fn (item){ return 1}

    [ ].some( fn )  // false

    [ ].every( fn )  // true

19、arr.reduce( )、arr.reduceRight( )

  reduce方法和reduceRight方法依次处理数组的每个成员,最终累计为一个值,他们的差别是,reduce是从左到右处理(从第一个成员到最后一个成员),reduceRight则是从右到左(从最后一个成员到第一个成员),其它完全一样

    [1,2,3,4,5].reduce(function(a,b){

      return  a + b

    })

    // 15

  还可以设置第二个参数

    [1,2,3,4,5].reduce(function(a,b){

      return  a + b

    },10)

    // 25

20、arr.indexOf( )、arr.lastIndexOf( )

  indexOf方法返回给定元素在数组中第一次出现的位置,如果没有出现则返回-1

    var  arr  =  [1,2,3,4,5]

    arr.indexOf( 1 )  // 0

    arr.indexOf( 1 )  // -1

  indexOf方法还可以接受第二个参数,表示搜索的开始位置

    [1,2,3,4,5].indexOf(2,2)  // -1

  lastIndexOf方法返回给定元素在数组中最后一次出现的位置,如果没有出现则返回-1

    var  arr  =  [4,6,8,4,5]

    arr.lastIndexOf( 4 )  // 3

    arr.lastIndexOf( 7 )  // -1

 

你可能感兴趣的:(js/数组)