//forEach源码实现Array.prototype.customeForEach = function (func, thisValue) {var arr = this;for (var i = 0; i < arr.length; i++) {func.call(thisValue, arr[i], i, arr);}}//some源码实现Array.prototype.customeSome = function (func, thisValue) {var arr = this;var state = false;for (var i = 0; i < arr.length; i++) {var val = func.call(thisValue, arr[i], i, arr);if (val) {state = true;break;}}return state;}//reduce源码实现Array.prototype.customeReduce = function (func, thisValue) {var arr = this;var total = thisValue ? thisValue : arr[0];for (var i = thisValue ? 0 : 1; i < arr.length; i++) {total = func(total, arr[i], i);}return total;}//filter源码实现Array.prototype.customeFilter = function (func, thisValue) {var arr = this;var result=[];for (var i = 0; i < arr.length; i++) {var val = func.call(thisValue, arr[i], i, arr);if(val){result.push(arr[i])}}return result;}//map源码实现Array.prototype.customeMap=function(func, thisValue){var arr = this;var result=[];for (var i = 0; i < arr.length; i++) {var val = func.call(thisValue, arr[i], i, arr);result.push(val);}return result;}//every源码实现Array.prototype.customeEvery=function(func,thisValue){var arr = this;var state = true;for (var i = 0; i < arr.length; i++) {var val = func.call(thisValue, arr[i], i, arr);if (!val) {state = false;break;}}return state;}

源码的学习对于提升js还是很重要的,我们不单单是要学会怎么用,还要搞清楚内部是如何实现,之前我对数组的这些方法也不是很清楚,只用到了其中的一部分,现在通过总结可以加深对他们的理解。

转载于:https://www.cnblogs.com/shentao11023/p/10974980.html

ES5数组一些常用的方法源码实现相关推荐

  1. php的setinc方法,thinkphp3.2.0 setInc方法 源码全面解析

    搜索热词 我们先来看一下setInc的官方示例: 需要一个字段和一个自增的值(默认为1) 我们通过下面这个例子来一步步分析他的底层是怎么实现的: class TestController extend ...

  2. jQuery方法源码解析--jQuery($)方法(一)

    jQuery方法源码解析--jQuery($)方法 注: 1.本文分析的代码为jQuery.1.11.1版本,在官网上下载未压缩版即可 2.转载请注明出处 jQuery方法: 这个方法大家都不陌生,在 ...

  3. 简单介绍Vue之vue.$set()方法源码案例

    这篇文章主要介绍了Vue之vue.$set()方法源码案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下 在使用vue开发项目的过程中,经常会遇到这样 ...

  4. js array 删除指定元素_Array 原型方法源码实现解密

    作者:木易杨 引言 今天这篇文章主要看看 ECMA-262 规范中是如何定义这些方法的,并且在看完规范后我们用 JS 模拟实现下,透过源码探索一些底层的知识,希望本文对你有所帮助. Array.pro ...

  5. 常用jdk类库源码分析以及各个包

    常用jdk类库源码分析以及各个包 1.java.lang包 java.lang包 是Java中最常用的包,程序不需要注入,就可以使用该包中的类,利用包中的类可以设计最基本的Java程序. 2.java ...

  6. Android学习笔记-常用的一些源码,防止忘记了

    Android学习笔记-常用的一些源码,防止忘记了... 设置拨打电话 StringdialUri="tell:"+m_currentTelNumble; IntentcallIn ...

  7. Transformers包tokenizer.encode()方法源码阅读笔记

    Transformers包tokenizer.encode()方法源码阅读笔记_天才小呵呵的博客-CSDN博客_tokenizer.encode

  8. 【错误记录】Android Studio 中查看 Gradle 配置的方法源码 ( 配置 gradle-wrapper.properties 中版本为 gradle-x.x.x-all.zip )

    文章目录 一.报错信息 二.解决方案 Android Plugin DSL Reference 参考文档 : https://google.github.io/android-gradle-dsl/2 ...

  9. 【Android 异步操作】线程池 ( 线程池 execute 方法源码解析 )

    文章目录 一.线程池 execute 方法源码解析 二.线程池 execute 方法完整源码及注释 一.线程池 execute 方法源码解析 进入 ThreadPoolExecutor 中 , 查看线 ...

最新文章

  1. 社区奖品之Linux内核设计与实现
  2. [导入]将DataGrid输出到Excel文件
  3. 计算机的c盘是硬盘吗,c盘是硬盘吗
  4. 启明云端分享|sigmastar debug工具使用说明(一)
  5. 恢复Win10照片查看器
  6. 大牛推荐的10本学习 Python 的好书
  7. html移动滚动彩字字幕特效,如何制作滚动字幕 旋转好莱坞字幕特效效果图(超多滚动效果)...
  8. python牛顿迭代法_Jacobi迭代算法的Python实现详解
  9. Java从键盘获取输入各种类型的数据方式
  10. [java] JVM监控与调优
  11. 纯CSS的方法解决文字溢出与截断的问题
  12. 光电自动避障小车_凌鸟智能总结了一下激光导航反射板AGV小车的优缺点!
  13. C语言实验——圆周率 sdut oj
  14. xshell如何导入.xsh 文件
  15. Android耗电统计算法
  16. 未能打开这台计算机的策略组对象,Windows7 组策略错误:“未能打开这台计算机上的组策略对象。您可能没有合适的权限。”...
  17. JavaScript—进阶篇
  18. 电脑游戏灌输的70个山寨逻辑
  19. Java篇 - 最全BigInteger和BigDecimal实战
  20. 摄影测量学和计算机视觉,科学网—摄影测量与计算机视觉——系列1 光与视觉 - 季顺平的博文...

热门文章

  1. php 处理 http 请求,PHP的http请求处理类
  2. 安卓手机玩游戏卡顿怎么解决_手机卡顿怎么办?教你3个实用解决方法,两分钟解决卡顿难题!...
  3. 多线程1:AtomicInteger的使用,多线程叠加或叠减
  4. JS高级进阶之ECMAScript 常见面试题
  5. visio保存后公式变形_涨姿势了!仿真变形后的模型还能保存下来
  6. 阶跃函数卷积自己_如何看待大神/老师说“阶跃响应曲线调参并不准确”的观点?...
  7. python打包的exe开机自动启动(windows)
  8. centos6.5下如何把python2.6.6升级到2.7
  9. 暗通道先验去雾实现过程分析
  10. Java Object.hashCode()方法