javaScript数组方法

随着javaScript的不断的发展,数组的方法也在不断的增加,下面总结了一下每个标准的数组方法,其都在Array.prototype中定义:

ECMAScript3:

  • join
  • reverse
  • sort
  • concat
  • slice
  • splice
  • push\pop
  • unshift\shift
  • toString\toLocaleString

ECMAScript5:

  • forEach
  • map
  • filter
  • every\some
  • reduce\reduceRight
  • indexOf\lastIndexOf

ECMAScript6:

  • Array.from
  • Array.of
  • copyWithin
  • find
  • findIndex
  • fill
  • enteries\keys\values
  • includes
  • for of

对于大家比较熟悉的应该还是在ES3中的一些方法,下面也是我平时在使用上一些注意的地方:

  • concat(item…) join(separator)

    数组的拼接和拆分,对原数组不进行操作,返回操作结果

  • pop() shift()

    尾部删除和头部删除,对原数组修改,返回被删除的元素,如果数组是空,返回undefined

  • push(item…) unshift(item…)

    尾部添加和头部添加,对原数组修改,并返回数组新的长度,不同于concat的是比如添加的元素是个一维数组,concat是把里面的元素添加进去,push是把整个数组添加进去,形成二维数组

  • slice(start,end) splice(start,deleteCount,item…)

    slice,不对原数组操作,返回操作结果,end参数可选,默认为array.length,如果start大于array.length或者start大于end返回空数组,如果start或end有一个小于0,对于小于0的值会被加array.length,使之成为一个正数,若这个负数太大,加array.length依然为负数,这个数是会被重置为0。splice是对原数组操作,返回被替换的元素,如果item是个一维数组,原数组替换的那部分是个数组。

  • reverse()

    反转数组元素顺序,对原数组操作,并返回本身

  • sort(comparefn)

    对原数组操作,并返回原数组,如果a-b小于0,即返回负数,第一个参数排在前面,a排在前面

    1
    2
    3
    c.sort(function(a,b){
    return a - b
    })

    综上,不操作原数组的方法是concat(item…),join(separator) ,slice(start,end)