0
点赞
收藏
分享

微信扫一扫

js中forEach、filter、map、find、findIndex的区别

小磊z 2022-04-24 阅读 76

首先forEach、filter、map、find、findIndex都是用来遍历数组的,那么他们的区别是什么?

let stu=[
	{name:'lisa',age:18},
	{name:'lili',age:19},
	{name:'anla',age:20},
	{name:'alex',age:21},
	{name:'tom',age:22},
]

1.forEach:

遍历数组全部元素,利用回调函数对数组进行操作,改变原数组。return用来控制循环是否跳出当前循环。

stu.forEach(item=>{
	item.age=item.age+10
})
console.log(stu)

请添加图片描述

2.filter

主要用于过滤当前数组,找出符合条件的元素,返回一个新数组,不会改变原数组ˆ
let newstu=stu.filter(item=>{
	return item.age>11
})

请添加图片描述
请添加图片描述

3.map

可以不改变当前循环当中的值,返回一个新的被改变过值之后的数组,一般用来处理需要修改某一个数组的值

let newstu2=stu.map(item=>{
	return item.age+10
})
console.log(newstu2)
console.log(stu)

请添加图片描述
请添加图片描述

4.find()

该方法返回数组中第一个满足条件的元素,找不到则返回undefined(该方法为es6新增)
语法:arr.find(item,index,arr)(除了arr其他非必传)
item:每一次迭代查找的数组元素
index:每一次迭代查找的素组元素索引
arr:被查找的数组

function getStu(element){
   return element.name == 'lisa'
}
 stu.find(getStu)
 //{name:'lisa',age:18}

5.findIndex()方法

返回数组中第一个满足条件的索引,找不到返回-1(该方法为es6新增)
语法:arr.findIndex(item,index,arr)
item:每一次迭代查找的数组元素。
index:每一次迭代查找的数组元素索引。
arr:被查找的数组。

function getStu(element){
   return element.name == 'lisa'
}
 stu.findIndex(getStu)//0
 
举报

相关推荐

0 条评论