//使用 reduce 实现数组 map 方法
const selfMap2 = function (fn, context){
let arr = Array.prototype.slice.call(this)
// 这种实现方法和循环的实现方法有异曲同工之妙,利用reduce contact起数组中每一项
// 不过这种有个弊端,会跳过稀疏数组中为空的项
return arr.reduce((pre, cur, index) => {
return [...pre, fn.call(context, cur, index, this)]
}, [])
} Array.prototype.selfMap = selfMap2
var arr1 = [1, 2, 3]
arr1.length = 5 let arrMap = arr1.selfMap(function (x) {
return x * 2
})
// [2, 4, 6]

最新文章

  1. SCI英文论文写作- Latex 进阶
  2. 【PHP面向对象(OOP)编程入门教程】17.克隆对象__clone()方法
  3. 《构建高性能web站点》随笔 无处不在的性能问题
  4. boost源码剖析----boost::any
  5. e.KeyChar用到的键盘对应ASCII码值(转)
  6. LinearLayout练习
  7. 多目标遗传算法 ------ NSGA-II (部分源码解析) 二进制编码的个体解码操作 decode.c
  8. javascript——函数内部属性
  9. 【Android】实现动态显示隐藏密码输入框的内容
  10. win7 下使用cygwin
  11. Android 开源优秀的项目
  12. UNIX网络编程——ICMP报文分析:端口不可达
  13. 团队项目第二阶段个人进展——Day4
  14. 象棋start
  15. C++实现--最大公因数和最小公倍数
  16. 关于kafka重新消费数据问题
  17. java中的字符、字符串及数字之间的转换(转)
  18. SpringMVC @RequestParam和@RequestBody的区别
  19. unity3d抛物线的脚本
  20. easyui---基础组件:dialog

热门文章

  1. validationEngine验证的使用
  2. 烹调方案 (DP)
  3. ConfigParser模块用法
  4. Logistic回归 线性回归(转)
  5. STM32F4 LTDC学习
  6. Struts2自定义返回Json类型result
  7. EA使用记录
  8. bzoj 2006: [NOI2010]超级钢琴【st表+堆】
  9. spoj 287 NETADMIN - Smart Network Administrator【二分+最大流】
  10. bzoj4580: [Usaco2016 Open]248(区间dp)