当前位置: 首页 > news >正文

北京网页制作方案整站优化全网营销

北京网页制作方案,整站优化全网营销,郑州汉狮做网站费用,wordpress 打断点1.提出思考?forEach不会改变原数组,而map会改变数组? 看到掘金上一篇文章觉得很有意思:大致是描述一般面试官问js中forEach和map的区别?都会回答forEach不会改变原数组,而map会改变,我也一直对…

1.提出思考?forEach不会改变原数组,而map会改变数组?

看到掘金上一篇文章觉得很有意思:大致是描述一般面试官问js中forEach和map的区别?都会回答forEach不会改变原数组,而map会改变,我也一直对百度来的答案当作参考答案。事实证明这个答案是错的

面试:问js的forEach和map的区别 - 掘金

2.forEach()没有返回值,如果使用return会返回undefined;map会返回新数组

 

 3.数组中数据为基本数据类型时,forEach和map都不会改变原数组

// 1、数组为基本数据类型时,forEach和map都不会改变原数组;使用return 返回时,forEach返回undefined,map返回一个处理后的新数组let arr = [1, 2, 3, 4, 5];let arrforEach = arr.forEach((item) => {return item * 2;});console.log(arr);//[1, 2, 3, 4, 5]console.log(arrforEach);//undefinedlet arr1 = [1, 2, 3, 4, 5];let arrMap = arr1.map(item => {return item * 2;});console.log(arr1);// [1, 2, 3, 4, 5]console.log(arrMap);// [2, 4, 6, 8, 10]

4.数据为引用数据类型时,map和forEach都会改变原数组

在使用 forEach 和 map 方法时,对引用类型元素的修改会直接反映在原始数组中。这是因为引用类型的元素实际上存储的是引用(内存地址),而非值本身。因此,通过引用可以访问和修改原始数组中的元素。而number,string,Boolean,null,undefined它们在栈内存中直接存储变量与值

// 2、数组为引用数据类型时,forEach和map都会改变原数组上的对象;使用return时,forEach返回undefined,map返回处理后的数据,未返回的元素返回undefined// 这是因为在使用 forEach 和 map 方法时,对引用类型元素的修改会直接反映在原始数组中。这是因为引用类型的元素实际上存储的是引用(内存地址),而非值本身。因此,通过引用可以访问和修改原始数组中的元素。// 而number,string,Boolean,null,undefined它们在栈内存中直接存储变量与值let arrObj1 = [{username: 'lmf',age: 20},{username: 'yl',age: 30}];let arrObj1ForEach = arrObj1.forEach(item => {if (item.username === 'lmf') return item.age = 100;});console.log(arrObj1);//{username: 'lmf', age: 100} , {username: 'yl', age: 30}console.log(arrObj1ForEach);//undefinedlet arrObj2 = [{username: 'lmf',age: 50},{username: 'yl',age: 60}];let arrObj2Map = arrObj2.map(item => {if (item.username === 'lmf') return item.age = 200;});console.log(arrObj2);//{username: 'lmf', age: 200} , {username: 'yl', age: 60}console.log(arrObj2Map);// [200, undefined]

5.map和forEach循环体内return时影响

return本身就是表示跳出本次循环,进入下次循环。博主说的观点“foreach可以跳出本次循环,return 语句可以在当前回调函数中返回,而map不能,只能遍历完整个数组。”这句话有歧义。

如下例:

其实无论是forEach还是map在return以后本次循环体中,return后的语句都不会执行。sum1和sum2都打印12,区别还是在于return后,map返回新数组的值由return的值决定,而forEach永远只会返回undefined。

  • 如果有return且直接return会返回undefined,如果返回其他值会返回其值;
  • 而forEach返回值永远会返回undefined
// 3、(错误)foreach可以跳出本次循环,return 语句可以在当前回调函数中返回,而map不能,只能遍历完整个数组。// return其实就是跳出本次循环,进行下次循环,区别其实和前面一样的,都是对最后返回的新数组产生影响,如果都定义sum在循环里操作,返回值都会相等const array1 = [1, 2, 3, 4, 5];let sum1 = 0;array1.forEach((element) => {if (element === 3) {return;//这句后面的代码此次循环都不会执行,所以对sum1不会有影响,如果返回'23',那么返回的新数组此元素也会返回'23'}console.log(element); //1,2,4,5sum1 += element;});console.log(newArray1);//undefinedconsole.log(sum1); // 输出: 12console.log("2222222");const array2 = [1, 2, 3, 4, 5];let sum2 = 0;const newArray = array2.map((element) => {if (element === 3) {return;这句后面的代码此次循环都不会执行,所以对sum2不会有影响}console.log(element);// 1,2,4,5sum2 += element;return element * 2;});console.log(sum2);// 12console.log(newArray); // 输出: [2, 4, undefined, 8, 10]

6.map 方法支持链式调用;forEach不支持因为返回的是undefined

        const array3 = [1, 2, 3, 4, 5];const doubledSum = array3.map((element) => element * 2).reduce((accumulator, currentValue) => accumulator + currentValue, 0);console.log(doubledSum); // 输出: 30

7.总结

forEach区别:

  1. forEach无返回值,具体得说是return会返回undefined;map会返回新数组
  2. 数组类型为基本数据类型时,forEach()和map()都不会改变原数组;
  3. 数组类型为引用数据类型时,forEach()和map()都会改变原数组;
  4. 循环体中使用return时,return后的代码都不会执行,只会对循环后的返回值有影响,forEach永远返回undefined,map()会返回return的值;
  5. forEach()不支持链式操作;map()支持链式操作;
http://www.wangmingla.cn/news/149600.html

相关文章:

  • 提供网站建设服务的网站价格营销软文范例大全300字
  • 网站开发路线精准引流推广团队
  • 郑州网站备案生成关键词的软件免费
  • 深圳网络营销网站建设线上推广引流渠道
  • WordPress建立电商网站重庆seo公司排名
  • 陕西西安网站建设深圳谷歌网络推广公司
  • 娄底网站建设79ldseo优化工具哪个好
  • 个人微信网站怎么做中国十大热门网站排名
  • 无锡网站设计哪家公司好app推广代理加盟
  • 手机网站推广方案百度网盘资源免费搜索引擎入口
  • 订阅号可以做微网站成都百度推广优化创意
  • ckeditor wordpress 无法预览文章百度seo怎么做网站内容优化
  • 有没有帮别人做图片的网站赚钱刘连康seo培训哪家强
  • 做网站的空间要多大的百度登录个人中心
  • 全国做网站的公司关键词竞价排名名词解释
  • 日本樱花云服务器黄页怎么提高seo关键词排名
  • 销售渠道及方式海外广告优化师
  • ps做的网页怎么导入网站互联网营销怎么做
  • 湛江建站价格国外广告联盟平台
  • o2o网站建设渠道seo标题关键词怎么写
  • phpcms企业网站源码优化百度百科
  • 青州企业网站建设it培训机构怎么样
  • 建网站企划书深圳经济最新新闻
  • 资讯网站开发seo平台怎么样
  • 广州 互联网公司 网站首页百度首页清爽版
  • 国内网站用django做的网站友情链接检测
  • 律师事务所手机网站网络优化工程师主要负责什么工作
  • wordpress 栏目打不开seo推广方式是什么呢
  • 舟山网站设计最好用的免费建站平台
  • 网站建设的方法有哪些内容北京正规seo搜索引擎优化价格