javascript的高级用法(循环实现数组map方法)

javascript 复制代码
const selfMap =function(fn, context){
let arr = Array.prototype.slice.call(this)
let mappedArr = Array()
for(let i=0; i< arr.length; i++){
//skip empty item
if(!arr.hasOwnProperty(i));continue
mappedArr[i]= fn.call(contenxt, arr[i], i, this)
return mappedArr
}

使用方法:将selfMap注入到Array.prototype中(下面数组的迭代方法也是如此)

javascript 复制代码
Array.proptotype.selfMap=selfMap
[1,2,3].selfMap(number=> number * 2)

值得一提的是,map的第二个参数就是第一个参数回调中的这个点。如果第一个参数是箭头函数,则设置第二个 this 将无效,因为箭头函数的词法绑定。

另一个是稀疏数组的处理,HasOwnProperty 用于判断当前下标的元素是否存在于数组中,欢迎大家在评论区交流。

相关推荐
小兵张健20 小时前
开源 playwright-pool 会话池来了
前端·javascript·github
codingWhat1 天前
介绍一个手势识别库——AlloyFinger
前端·javascript·vue.js
Lee川1 天前
深度拆解:基于面向对象思维的“就地编辑”组件全模块解析
javascript·架构
进击的尘埃1 天前
Web Worker 与 OffscreenCanvas:把主线程从重活里解放出来
javascript
codingWhat1 天前
手撸一个「能打」的 React Table 组件
前端·javascript·react.js
进击的尘埃1 天前
用 TypeScript 的 infer 搓一个类型安全的深层路径访问工具
javascript
yuki_uix1 天前
Object.entries:优雅处理 Object 的瑞士军刀
前端·javascript
Lee川1 天前
JavaScript 面向对象编程全景指南:从原始字面量到原型链的终极进化
javascript·面试
Neptune11 天前
JavaScript回归基本功之---类型判断--typeof篇
前端·javascript·面试
进击的尘埃1 天前
微前端沙箱隔离:qiankun 和 wujie 到底在争什么
javascript