今天我们就来说说两个经常用到的方法。mapforEach把这两个方法搞混了很多次,所以记录一下。我们来看看官网是怎么说的:forEach()方法对数组的每个元素执行一次给定的函数。constarray1=['a','b','c'];array1.forEach(element=>console.log(element));//预期输出:“a”//预期输出:“b”//预期输出:“c”map()方法创建一个新数组,其结果是数组中的每个元素都是对所提供函数的一次调用的返回值。简而言之,map返回一个数组,就是你处理的数组。constarray1=[1,4,9,16];//传递一个函数来映射constmap1=array1.map(x=>x*2);console.log(map1);//预期输出:Array[2,8,18,32]简要总结一下map返回其原始数组的新数组,而forEach则不会。顺便提一下容易混淆的Map方法。官网写的千篇一律看不懂,直接看示例代码letmyMap=newMap();letkeyObj={};letkeyFunc=function(){};letkeyString='astring';//添加键myMap.set(keyString,"valueassociatedwithkey'astring'");myMap.set(keyObj,"valueassociatedwithkeykeyObj");myMap.set(keyFunc,"与键keyFunc关联的值");myMap.size;//3//读取值myMap.get(keyString);//"与键'astring'关联的值"myMap.get(keyObj);//"与键keyObj关联的值"myMap.get(keyFunc);//"与键keyFunc关联的值"myMap.get('astring');//“与键'astring'值关联的值”//因为keyString==='astring'myMap.get({});//未定义,因为keyObj!=={}myMap.get(function(){});//未定义,因为keyFunc!==function(){}了解了基本用法之后,我们来看一下原理(这样可以加深理解)mapArray.prototype.map=function(fn){letnewArr=[];for(leti=0;i
