`[1, 2].map((ele, index, arr) => {})` 传入的回调函数中 arr 存在的意义是什么?

[1, 2].map((ele, index, arr) => {}) 传入的回调函数中第 3 个参数 arr 存在的意义是什么?
arr 为原数组 [1, 2],希望知道为什么会存在这个参数?

阅读 4k
4 个回答

如果这个回调函数不在数组 [1,2] 的同作用域内那么是不是有意义了呢

Array.from(...)
.concat(...)
.sort(...)
.filter(...)
.map((ele, index, arr) => {
    //当你进行了一个很长的链式调用的时候,没有用变量来储存此时数组的引用,
    //可是你需要在这里获得这个数组的引用,这时候arr就派上用场了。
})
  1. 这里严格意义上来说,就不是回调函数,而是遍历函数,用这种方法主要是处理编写程序时的便利性,这种调用时,ele,index,arr等也不会传入不在数组中的信息

  2. 语言实现中就是这样实现的,你可以不对arr处理,但在使用map时,arr是可以用的,如果你的调用实例函数需要,也可以进行处理,例如需要找出arr中第5大的元素,可能就需要用到arr进行处理才方便。

可以看看之前关于这个问题我的回答。

链接

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题