随着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
3c.sort(function(a,b){
return a - b
})综上,不操作原数组的方法是concat(item…),join(separator) ,slice(start,end)