一,元素添加和删除
如果是添加元素,返回值是增加元素后数组的长度,如果是删除数组,返回值是删掉的元素。
- (1) push(ele1,ele2,el3,…); 从尾添加
- (2) unshift(ele1,ele2,ele3,…);从头添加
- (3) pop();删掉数组最后一个元素,并将该元素返回
- (4) unshift();删掉数组第一个元素,并将该元素返回
- (5) concat();该方法用于连接两个或是多个数组,该方法不会改变原有的数组,但会返回一个被连接后的数组。使用语法:arr.concat(arr1,arr2,…,arrN)
二,slice 和 splice 方法
- (1) slice(start,end);从数组索引为start的位置开始截取元素到数组索引为end的位置,组成一个新的数组,并返回。start必填,end可选填,如果end不填,表示截取到数组末尾;start和end的值都可为负值,如果为负值,表示从数组的末尾开始算起。
- (2) splice(index,count,item1,item2,…,itemN) 该方法功能很强大,对数组进行增加/删除/修改,会改变原数组
a. 增加元素
splice(index,0,args) index表示从哪个索引位置开始增加,args表示增加的元素,返回改变后的数组
b. 替换元素
splice(index,count,args) index表示从哪个索引位置开始替换,count表示替换几个元素,args表示用来替换的元素,返回改变后的数组
c. 删除元素
splice(index,count) index 表示从哪个位置开始删除,count表示删除几个,返回被删除的元素数组
三,排序方法
- (1) reverse() 颠倒数组中元素的顺序,该方法是直接会直接改变原数组
- (2) sort() 调用函数不传参时,将按ASCII码对数组中的元素进行排序。如果需要按照其他标准排序,可以直接将函数作为参数,从而实现排序
a. 升序
var aNum = [33,22,67,3,78]
aNum.sort(function(a,b){
return a-b;
})
console.log(aNum)
b. 带单位升序
var aNum = ['33px',''22px','67px','78px']
aNum.sort(function(a,b){
return parseInt(a)-parseInt(a);
})
console.log(aNum)
四,数组转换
- (1) toLocaleString() 用于将数组转换为本地字符串,作用和toString差不多,但此方法是使用地区特定的分隔符来将生成的字符串连接起来。
- (2) join() 该方法用于将一个数组的所有元素都按指定的分隔符分隔,转换成字符串
- (3) split() 该方法用于将字符串按片段分隔创建数组,和join()的功能正好相反
五,位置方法
(1) indexOf(ele) 在数组中搜索元素ele第一次出现的位置,有就返回索引,没有就返回-1
(2) lastIndexOf(ele) 是从尾向前的搜索
六,迭代方法
- 迭代: 每一次对过程的重复成为迭代。
(1) every(fun) fun是一个函数,对数组中的每一项运行func函数,如果每次函数调用都返回true,结果就返回true,否则返回false
var arr=[1,2,3,4,5,6];
var result = arr.every( function(item,index,arry){
return item>5;
} )
alert(result);//false
var arr = [3,4,5];
var result = arr.every( function(item,index,ary){
return item>2;
})
alert(result);//true
(2) filter(func) 对数组中的每一项运行func函数,将每次调用结果为true的元素组合成新的数组保留下来返回
var arr = [1,2,3,4,5,6,7];
var result = arr.filter(function(item,index,ary){
return item>5;
});
alert(result); //返回结果为[6,7]
(3) forEach(func) 循环遍历数组中的每一项,并且每一项的值和索引会作为func的参数
var arr = [1,2,3,4];
arr.forEach(function(item,index){
console.log(item);
})
(4) map(func) 对数组中的每一项运行func函数,将每次调用的结果组合成新的数组返回,注意,这里返回的是数组
var arr = [1,2,3,4];
var result = arr.map(function(item,index){
return item>3;
})
alert(result);//false,false,false,true
(5) some(func) 对数组中的每一项运行func函数,如果有一次函数调用返回true,结果就返回true,否则返回false
七,归并方法
- (1) reduce() 该方法从数组的第一项开始逐个遍历至尾,使用指定的函数将数组进行整合,只返回一个值,这就是归并方法。
参数说明:两个参数,一个是执行化简操作的函数,这个参数必需;第二个参数是传递给函数的一个初始值。第一次调用化简操作函数,传了初始值,pre的值就是初始值,cur就是数组的第一项;没传初始值,pre的值就是数组的第一项,cur就是数组的第二项。第二次调用化简操作参数,pre是上一次函数调用的返回值,cur是当前值。
reduce(function(pre,cur,index,arr){},初始值)
可以结合以下代码进行理解:
var arr = [1,2,3,4,3,4,5];
var sum = arr.reduce(function(x,y){return x+y;},0); //数组元素求和
var multi = arr.reduce(function(x,y){return x*y},1);//求出数组中各元素的积
var max = arr.reduce(function(x,y){return (x>y)?x:y});//求出最大值为6
- (2) reduceRight() 该方法的使用和reduce() 是一样的,这里可以联想到indexOf() 方法和lastIndexOf()方法的关系,即reduceRight()方法是按照数组索引从高到低处理数组。