关于forEach与map方法说明

        在开发过程中forEach和map都是常用的方法,你会发现通过map也能完成forEach的操作。然后大家可能有误解,都可以的话,那我为什么用forEach方法呢,直接用map方法不就行了么?下面我们一起学习一下。

一、forEach方法

forEach方法:用于数据for循环进行遍历。接收三个参数(数据中每个元素,下标,数据),单纯的更改item,不会更改源数据。

const arr=[1,2,3,4,5,6]
 arr.forEach((item,index,data) => {
    console.log(item,index,data);
});

二、map方法

map方法:用于映射一个新的数组,不更改源数据。

const arr=[1,2,3,4,5,6]
const newArr= arr.map((item,index,data) => {
    return item+1
});
console.log(newArr);

三、两者相同之处

都可以当做数组的遍历方式。这也是为啥要讲的原因,好多同学喜欢拿着map当forEach使用,虽然可能最后的结果是好的,但是这样写代码,是有问题的,不便于后面的维护,不符合语义化等。

模拟代码操作:

const arr=[1,2,3,4,5,6]
//通过forEach处理数据
arr.forEach((item,index,data)=>{
    arr[index]=item+1
})
//通过map处理数据
const newArr= arr.map((item,index,data) => {
    arr[index]=item+1
});
console.log(arr);

这样你会发现结果是一样的,我们都得到了想要的数据,但处理的逻辑是遍历数据而不是映射,所以应该使用forEach。

四、两者不同及区分场景

区别:1.返回值:forEach是没有返回值的,返回undefined。2.map会产生一个新数组。

场景:

forEach:用于遍历的数据处理,比如数据判断,当满足某个条件时,进行对应的逻辑。

const arr=[1,2,3,4,5,6]
//通过forEach处理数据
arr.forEach((item,index,data)=>{
    if(item===1){
        console.log('我是1');
    }
})

map:用于取出我们所需要的数据,映射出一个新数组,更改映射出来的数据,不会对原数组产生影响。

const arr=[{name:'张三',age:16},{name:'李四',age:18},{name:'王二',age:20}]
//通过map处理数据
const newArr= arr.map((item,index,data) => {
    return {
        name:item.name
    }
});
console.log(newArr);

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值