slice(start,end )
提取目标数组的一部分数据,并以新数组返回,start与end含头不含尾,原数组保持不变. 如果省略参数,则返回原数组的拷贝.
参数也可以是负数,表示倒数计算的位置.
如果start大于等于数组长度,或者end小于start 则返回空数组.
slice方法一个重要应用是将类数组的对象转换为真正的数组.
Array.prototype.slice.call ( { 0:'a',1:'b' } ); // ['a','b']
splice( )
用于删除原数组的一部分成员,并可以在删除的位置添加新的成员,返回被删除的元素 . 该方法会改变原数组.
Array.prototype.splice(start,count,addElement1,addElement2,...)
sort( )
对数组元素以字典顺序进行排序
自定义排序方式如下:
[11,1011,111].sort(function (a,b){
return a-b;//大于0表示a>b a排在b后面
})
map( ),forEach( )
map方法第一个参数为function(element,index,arr)),还可以接收第二个参数,用于绑定回调方法内部的this变量.
var arr=['a','b','c'];
[1,2].map(function(element,index,array){
return this[e]
},arr);
// ['b','c']
如果数组有空位,map方法会跳过数组的空位,但不会跳过undefined和null
forEach方法的使用与map一样,只是不返回数据,执行过程中无法中断执行,如果希望中途中断遍历,要使用for循环.
reduce( ),reduceRight( )
依次处理数组的每个成员,最终累计为一个值,前者从左到右遍历,后者反之.
回调方法的参数结构如下:
1.累积变量,默认为数组的第一个成员
2.当前变量,默认为数组的第二个成员
3.当前位置(从0开始)
4.原数组
其中前两个是必须的,后两个则是可选的
[1,2,3,4,5].reduce(function(ret,curr){
return ret+curr;
})
// 15
如果要对累积变量指定初值,可以把它放在reduce方法的第二个参数位置
但是如果指定累积初始值后,回调方法的第一个参数就是指定的初始值,第二个参数默认为数组第一个成员.
[1,2,3,4,5].reduce(function(ret,curr){
return ret+curr;
},10)//25