返回介绍

模拟 Array.prototype.forEach()

发布于 2024-09-07 20:34:43 字数 1097 浏览 0 评论 0 收藏 0

forEach() 方法对数组的每个元素执行一次给定的函数,无返回值。

语法

arr.forEach(callback(currentValue [, index [, array]])[, thisArg])

参数

  • callback

    为数组中每个元素执行的函数,该函数接收一至三个参数: currentValue 数组中正在处理的当前元素。 index 可选数组中正在处理的当前元素的索引。 array 可选 forEach() 方法正在操作的数组。

  • thisArg 可选

    可选参数。当执行回调函数 callback 时,用作 this 的值。

代码实现

Array.prototype.myForEach = function(callback, context) {
  const arr = this // 获取调用的数组
  const len = arr.length || 0

  let index = 0  // 数组下标
  while(index < len) {
    callback.call(context ,arr[index], index)
    index++
  }
}

let arr = [1,2,3]
arr.forEach((item,index) => {
  console.log(`key: ${index} - item: ${item}`)
})
console.log('----------')
arr.myForEach((item,index) => {
  console.log(`key: ${index} - item: ${item}`)
})
/**
 * key: 0 - item: 1
key: 1 - item: 2
key: 2 - item: 3
----------
key: 0 - item: 1
key: 1 - item: 2
key: 2 - item: 3
 */

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文