数组方法map和forEach的区别

map方法:

代码中未执行return,没有接收新数组的变量值,则输出为原数组;

有接收新数组的变量,但没有return时输出undefined;

​let arr = [1,2,3,4]
let arr1 = arr.map( (value,index,array)=>{
        value = value + 1
        console.log(`value:${value}    index:${index}     array:${array}`)
                    //  value:2        index:0             array:1,2,3,4
                    //  value:3        index:1             array:1,2,3,4
                    //  value:4        index:2             array:1,2,3,4
                    //  value:5        index:3             array:1,2,3,4
})   
console.log(arr) //[1,2,3,4]
console.log(arr1) // [undefined, undefined, undefined, undefined]

因此,map方法是修改数组中的数据并返回新的数组;

var arr1 = [1,2,3,4]; 
var res1 = arr1.map((value,index,arr)=>{ 
 value= value+ 1; 
 return value; 
})
console.log(arr1); // [1,2,3,4]
console.log(res1); // [2,3,4,5]

forEach方法:

不执行return输出执行结果

let arr1 = [1,2,3,4]
arr1.forEach( (value,index,array)=>{
    value = value + 1
    console.log(`value:${value}    index:${index}     array:${array}`)
              //  value:2           index:0             array:1,2,3,4
              //  value:3           index:1             array:1,2,3,4
              //  value:4           index:2             array:1,2,3,4
              //  value:5           index:3             array:1,2,3,4
})   
console.log(arr1) // [1, 2, 3, 4]

执行return后输出修改数据后的结果,但不返回新的数组,因此map方法有return,forEach方法没有return。

var arr = [1,2,3,4]; 
var res = arr.forEach((item,index,arr)=>{     
 arr[index] = item * 2; 
 return arr 
})
console.log(arr); // [2,4,6,8]
console.log(res); // undefined 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值