常用的遍历方法有哪些?
项目中想要将数据重组为我们想要的格式,经常用到的对数组的遍历方法有哪些呢?我们来列举一下:
- 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() :将一个或多个元素添加到数组的末尾
结尾
这是我总结的数组的常用方法,有待继续完善,有任何不同意见欢迎评论哟~