js中forEache()和Map()的区别

Posted 我想月薪过万

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js中forEache()和Map()的区别相关的知识,希望对你有一定的参考价值。

定义剖析

我们首先来看一看MDN上对Map和ForEach的定义:

forEach(): 针对每一个元素执行提供的函数(executes a provided function once for each array element)。

map(): 创建一个新的数组,其中每一个元素由调用数组中的每一个元素执行提供的函数得来(creates a new array with the results of calling a provided function on every element in the calling array)。

案例演示

案例一:使用 forEach() 来操作一个数组

参数剖析

//原数组
let arr_one = [7,8,9]

//value:必需。当前元素  index:可选。当前元素的索引值 arr:可选。当前元素所属的数组对象
arr_one.forEach((value,index,arr)=>{
    console.log(value,index,arr)
})

运行结果如下:

操作元素

//原数组
var arr_one = [7,8,9]

arr_one.forEach((value,index)=>{
    //将原数据 的每个元素 加2
    arr_one[index] += 2
})

console.log(arr_one)

运行结果如下:

也就是说:forEach() 通过回调函数处理原数组数据,无返回值

案例二:使用 map() 来操作一个数组

参数剖析

//原数组
let arr_one = [7,8,9]

//value:必需。当前元素  index:可选。当前元素的索引值 arr:可选。当前元素所属的数组对象
let arr_new = arr_one.map((value,index,arr)=>{
    console.log(value,index,arr)
})

运行结果如下:

 操作元素

//原数组
let arr_one = [7,8,9]

//value:必需。当前元素  index:可选。当前元素的索引值 arr:可选。当前元素所属的数组对象
let arr_new = arr_one.map((value,index,arr)=>{
    return value+2
})

console.log(arr_new)

运行结果如下:

也就是说:map() 通过回调函数处理原数组数据,通过返回值的方式放到一个新数组中,原数组不变 

以上是关于js中forEache()和Map()的区别的主要内容,如果未能解决你的问题,请参考以下文章

JS中Map和Object的区别

JS的forEach和map方法的区别,还有一个$each

js中 forEach 和 map 区别

js es6 map 与 原生对象区别

JS中map()与forEach()的区别和用法

关于js中 .map()的问题,希望大神可以帮忙解读下这段代码的实现过程