数组中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);不变

     

posted @   小王很爱吃榴莲  阅读(69)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示