博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Javascript数组Array的forEach方法
阅读量:4930 次
发布时间:2019-06-11

本文共 1079 字,大约阅读时间需要 3 分钟。

Javascript数组Array的forEach扩展方法 forEach是最常用到的数组扩展方法之一,相当于参数化循环数组,它简单的在数组的每一个元素上应用传入的函数,这也意味着只有存在的元素会被访问和处理。

   如果我们用console.log替换处理函数,将可以得到另外的有趣结果: [1,2,3,"csser"].forEach(console.log);

  结果:  

  1, 0, Array[1, 2, 3, "csser"]

  2, 1, Array[1, 2, 3, "csser"]

  3, 2, Array[1, 2, 3, "csser"]

  csser, 3, Array[1, 2, 3, "csser"]

  这里forEach函数每次调用console.log时会传入3个参数。显而易见,这3个参数分别是:当前项、当前项索引和数组本身,

  forEach是一个基本的数组高阶(higher-order)方法,其语法定义为: array.forEach(callback[, thisObject]) 第一个参数我们已经知道了,它是一个拥有3个参数的函数,该函数将应用于数组的每一项。

  而第二个参数表示上下文对象(context object)或者this值,用于指向回调函数的this引用。这有时会挺有用,比如当我们想使用某个对象的方法作为forEach的处理函数时: 

  var database = {    users: ["CSSer", "John", "David"],    sendEmail: function (user) {
      if (this.isValidUser(user)) {         /* 发送消息 */      }    },    isValidUser: function (user) {       /* 验证代码 */ }    }; // 向每个用户发送邮件 database.users.forEach(database.sendEmail,database);

  简单分析下,在sendMail函数内部的this指向database对象,并且this.isValidUser指向必须的函数,如果我们不传入第二个参数,this值会被默认指向全局对象(在浏览器中是window)或者在strict模式下指向undefined。

转载于:https://www.cnblogs.com/hgbgfg/p/5448572.html

你可能感兴趣的文章
4.27随笔
查看>>
CSS实例:图片导航块
查看>>
poj1860 Currency Exchange(spfa判断正环)
查看>>
SQL CHECK 约束&Case when 的使用方法
查看>>
[整理]HTTPS和SSL证书
查看>>
[转载] Android 异步加载图片,使用LruCache和SD卡或手机缓存,效果非常的流畅
查看>>
UVA12206 Stammering Aliens 【SAM 或 二分 + hash】
查看>>
水晶苍蝇拍:聊聊估值那些事儿——“指标”背后的故事 (2011-11-01 14:58:32)
查看>>
3.每周总结
查看>>
应用提交 App Store 上架被拒绝
查看>>
Android实现异步处理 -- HTTP请求
查看>>
数据清空js清空div里的数据问题
查看>>
Fortran中的指针使用
查看>>
移动终端app测试点总结
查看>>
14-6-27&28自学内容小结
查看>>
JSP
查看>>
---
查看>>
(第一组_GNS3)自反ACl
查看>>
hdu--1258--Sum It Up(Map水过)
查看>>
Spring @DeclareParents 的扩展应用实例
查看>>