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 用于判断当前下标的元素是否存在于数组中,欢迎大家在评论区交流。

相关推荐
jump_jump10 分钟前
基于 Squoosh WASM 的浏览器端图片转换库
前端·javascript·性能优化
ytttr8733 小时前
隐马尔可夫模型(HMM)MATLAB实现范例
开发语言·算法·matlab
天远Date Lab3 小时前
Python实战:对接天远数据手机号码归属地API,实现精准用户分群与本地化运营
大数据·开发语言·python
listhi5203 小时前
基于Gabor纹理特征与K-means聚类的图像分割(Matlab实现)
开发语言·matlab
qq_433776424 小时前
【无标题】
开发语言·php
Davina_yu4 小时前
Windows 下升级 R 语言至最新版
开发语言·windows·r语言
阿珊和她的猫4 小时前
IIFE:JavaScript 中的立即调用函数表达式
开发语言·javascript·状态模式
listhi5205 小时前
卷积码编码和维特比译码的MATLAB仿真程序
开发语言·matlab
yuan199975 小时前
基于主成分分析(PCA)的故障诊断MATLAB仿真
开发语言·matlab
J_liaty5 小时前
Java版本演进:从JDK 8到JDK 21的特性革命与对比分析
java·开发语言·jdk