数组中forEach和map
1、相同点
(1)都是循环遍历数组中的每一项。
(2)每次执行匿名函数都支持三个参数,参数分别为item(当前每一项),index(索引值),arr(原数组)。
(3)匿名函数中的this都是指向window。
(4)只能遍历数组。
2、不同点
(1)map()会分配内存空间存储新数组并返回,forEach()不会返回数据。
(2)forEach()允许callback更改原始数组的元素。map()返回新的数组。
foreach:
-
数组中有几项,那么传递进去的匿名回调函数就需要执行几次
- 理论上这个方式没有返回值,只是遍历数组不会对其进行修改,如果想修改可以通过数组的索引来修改原来的数组
-
var array = [10,34,57,43,76]; var res = array.forEach(function (item,index,input) { input[index] = item*10; }) console.log(res);//--> undefined; console.log(array);//--> 通过数组索引改变了原数组 [100,340,570,430,760];
map:
-
有返回值,可以return出来
arr[].map(function(value,index,array){ xxx return xxx });
map的回调函数中支持return返回值,return的是啥,相当于把数组中的这一项变为啥(并不影响原来的数组,只是相当于把原数组克隆了一份,把克隆这一份的数组中的对应项改变了 );
-
var array = [10,34,57,43,76]; var res = array.map(function (item,index,input) { return item*10; }) console.log(res); console.log(array);不变
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现