数组遍历的方法

249 阅读3分钟

常用的遍历方法有哪些?

项目中想要将数据重组为我们想要的格式,经常用到的对数组的遍历方法有哪些呢?我们来列举一下:

  • map : 返回值为新数组
  • forEach
  • filter : 返回值为新数组
  • reduce
  • some :是对数组中每一项运行给定函数,如果该函数对任一项返回true,则返回true。
  • every :是对数组中每一项运行给定函数,如果该函数对每一项返回true,则返回true。

每个方法是如何使用的?

1.map()方法

场景:数组中的每个元素乘以2,返回新数组
var arr=[1,20,10];
var newArr = arr.map(item=>{
    return item*2
});
console.log(newArr);//[2,40,20]

2.forEach()方法

场景:简单的数组求和,原数组不变
var sum=0;
[1,2,3,4].forEach((item,index,array)=>{
    console.log(arrya[index] == item);//true
    sum += item;
});
alert(sum);//10

3.filter()方法

场景:将所有在过滤函数中返回 true 的数组元素放进一个新数组中并返回,原数组不变
var arr=[10,20,30];
var newArr = arr.filter(item => item>20 );
console.log(newArr);//[30]
console.log(arr);//[10,20,30]

4.reduce()方法

场景:接收一个函数作为累加器,数组中的每个值(从左到右)开始,最终计算为一个值
语法:array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
原理:initialValue为可选值,代表的是初始值,不填时初始值就是数组中的第一个值,接受函数作为累加器,从左至右进行累加之后,将结果继续与下一个值进行计算。
//例子1 
var numbers=[65,34,4,5];
function getSum(total,num){
    return total + num;
}
var result = numbers.reduce(getSum);
console.log(result);//总和为108 
//例子2
var arr=[1,3,5,7,9];
var result = arr.reduce(function(x,y){
    return x*10 + y
})
console.log(result);//将[1,3,5,7,9]变换成整数13579 

5.some()方法

场景:对数组中每一项运行给定函数,如果该函数对任一项返回true,则跳出循环返回true
var arr=[1,2,3,4,5];
var isTrue = arr.some((item,index,array)=>{
    return item>3
});
console.log(isTrue);

6.every()方法

场景:是对数组中每一项运行给定函数,如果该函数对每一项返回true,则跳出循环返回true
var arr=[1,2,3,4,5];
var isTrue = arr.every((item,index,array)=>{
    return item>3
})
console.log(isTrue);

其他的数组方法

  • fill():用一个固定值填充一个数组中从起始索引到终止索引内的全部元素 语法:arr.fill(value,start,end)
  • find():返回数组中满足测试函数的第一个元素的值 例子:
    [12,3,45,6].find(item=>item > 15);//返回值为45
    
  • findIndex():返回数组中满足提供的测试函数的第一个元素的索引 例子:
    [12,3,34,7].findIndex(item=>item > 15);//返回值为2
    
  • includes():用来判断一个数组是否包含一个指定的值,返回值为true 或 false 比如:
    [1,2,3].includes(2); //返回值为true
    
  • indexOf() :返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1
  • join() :将数组(或一个类数组对象)的所有元素连接到一个字符串中
  • lastIndexOf() :返回指定元素在数组中的最后一个的索引,如果不存在则返回-1,从数组的后面向前查找
  • slice() :返回一个从开始到结束(不包括结束)选择的数组的一部分浅拷贝到一个新数组对象
  • splice() :通过删除现有元素和/或添加新元素来更改一个数组的内容
  • toString() :返回一个字符串,表示指定的数组及其元素
  • shift() :从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度
  • unshift():将一个或多个元素添加到数组的开头,并返回新数组的长度
  • pop() :从数组中删除最后一个元素,并返回该元素的值。此方法更改数组的长度
  • push() :将一个或多个元素添加到数组的末尾

结尾

这是我总结的数组的常用方法,有待继续完善,有任何不同意见欢迎评论哟~