首页 > 试题广场 >

说一说map 和 forEach 的区别?

[问答题]
说一说map 和 forEach 的区别?
直白点说,forEach是针对数组中每一个元素,提供一个可执行的函数操作,因此它(可能)会改变原数组中的值。不会返回有意义的值,或者说会返回undefined;而map是会分配内存空间创建并存储一个新的数组,新数组中的每一个元素由调用的原数组中的每一个元素执行所写的函数得来,返回的就是新数组,因此不会改变原数组的值; 
个人感觉map更加贴近于函数式编程的特点,而且执行起来也会比forEach快很多,所以我在二者都可的情况下会更推荐map
编辑于 2022-04-24 16:42:46 回复(0)
1. map有返回值,且返回值是新数组,而forEach无返回值,返回结果undefined,一般做修改修改数组操作 2. map和forEach用只能用try...catch...中断抛出错误中断,而return不能,用其效果相当于for循环的continue会跳过此次循环进入下一次循环。
编辑于 2022-11-05 12:42:48 回复(6)
map返回新数组,而forEach返回值为undefined。forEach能改变原数组,而map不会。
发表于 2022-04-30 13:51:44 回复(4)
forEach和map都不改变原数组,但是能改变原数组对象中的基本数据类型;map会返回一个新的数组和原数组长度一样的数组,而forEach没有返回值,map是会分配内存空间创建并存储一个新的数组,map的处理速度比forEach快,更推荐使用map
发表于 2022-05-31 15:56:41 回复(0)
1.共同点:都是循环遍历一个数组中的每一项 2.forEach() 和 map() 里面每一次执行匿名函数都支持3个参数:数组中的当前项item,当前项的索引index,原始数组input 3.匿名函数中的this都是指Window 4.只能遍历数组 不同点:foreach没有返回值 能改变原数组 map返回一个新的数组,不修改原数组 map的执行速度更快
发表于 2022-08-30 21:42:24 回复(0)
相同点:1.都能遍历数组 2.中途不能被break打断 3.函数中都有三个参数,当前遍历的元素,当前元素的索引,原数组。 不同:1.forEach没有返回值,也就是返回undefined,map会开辟新的一个内存空间,返回新的数组,这点也方便链式调用其他数组方法。 2.map的效率比forEach高
发表于 2022-05-03 13:47:04 回复(1)
hash 和history都是利用浏览器的两种特性实现的,history是根据浏览器的记录栈的api实现,hash是通过hash值的变化来实现 hash有#号,history没有
发表于 2022-05-13 11:23:44 回复(4)
map不会改变原数组,会单独创建返回一个新数组,forEach是提供了一个操作原数组的函数,但不会返回有意义的值
编辑于 2024-03-03 15:23:40 回复(0)
1. map一般不修改原数组,forEach能改变原数组 2. map有返回值,创建新数组,而forEach无返回值,返回结果undefined 3. map和forEach用只能用try...catch...中断抛出错误中断,而return不能,用其效果相当于for循环的continue会跳过此次循环进入下一次循环。
发表于 2022-08-03 17:53:54 回复(0)
map有返回值 foreach没有 map不改变原来的数组,会返回一个新的数据,foreach会修改原来的数组
发表于 2022-05-23 10:15:53 回复(0)
forEach会改变原数组,返回结果为undefined,map不会改变原数组,返回的为新数组
发表于 2024-04-28 22:40:35 回复(0)
1、map速度较forEach()快 2、map有返回值,返回一个length和原数组一致的数组,forEach无返回值 3、 map创建新数组、map返回处理后的值
发表于 2024-04-10 22:46:19 回复(0)
map会返回一个新数组,foreach没有返回值
编辑于 2024-04-08 17:20:03 回复(0)
map: 遍历数组每一项,可以定义转换item,然后返回一个等长的数组 forEach: 遍历数组每一项,不返回任何东西吗,仅仅是遍历
编辑于 2024-03-11 11:20:45 回复(0)
map 返回一个新数组 不会改变原数组 foreach 返回undefined 会改变原数组
编辑于 2024-03-04 15:59:52 回复(0)
map有返回值,可以返回一个和原数组一致的数组,forEach无返回值,返回结果为undefined,可以在函数体内部使用索引修改数组元素,map的处理速度比forEach快,而且返回一个新数组,方便链式调用其他数组新方法
发表于 2024-02-28 10:26:47 回复(0)
map无论如何都会返回 [undefiend],forEach会返回undefined,map会对数组每一项通过条件进行返回,如果没有就返回undefined,forEach只是循环数组每一项,两个方法都不会改变原数组,参数都是 数组每一项,index 数组本身
发表于 2024-01-25 18:02:25 回复(0)
map就是映射,foreach就是循环操作每一个元素,对每个元素做出判断,对象数组
发表于 2023-12-26 16:01:47 回复(0)
1.返回值不同,map拥有返回值,forEach返回值永远是undefined,2.map不会改变原数组,它是返回一个新数组,而forEach会改变原数组。3.map通常可以跳出循环而forEach一般不能终止循环,除非用try catch。
发表于 2023-12-26 10:40:23 回复(0)
1.map有返回值,forEach没有返回值, 2.map针对数组的每一项进行处理,最终返回的结果是处理后的数组。
发表于 2023-11-24 16:36:49 回复(0)