数组方法总结

时间:2021-08-13 19:04:30

一,元素添加和删除

如果是添加元素,返回值是增加元素后数组的长度,如果是删除数组,返回值是删掉的元素。

  • (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()方法是按照数组索引从高到低处理数组。