javascript - `[1, 2].map((ele, index, arr) => {})` 传入的回调函数中 arr 存在的意义是什么?
怪我咯
怪我咯 2017-04-11 13:03:57
[JavaScript讨论组]

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

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(4)
PHP中文网

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

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

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

怪我咯

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

链接

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号