拓展 Array 方法
为 Array 对象扩展了一个迭代器之后,就可以利用这个法代器进一步拓展 Array 的方法,使其能够完成更多的实用功能。
Array.prototype.each = function( f ) {  //数组法代器,扩展 Array 原型方法
    try{  //异常处理,避免因为不可预测的错误导致系统崩溃
        this.i || ( this. i = 0 ); //定义临时变量,用来作为法代计数器
        if( this.length > 0 && f.constructor == Function ) {
            //如果数组长度大于 0并且参数为函数
            while( this.i < this.length ) { //遍历数组
                var e = this[this.i]; //获取当前元素
                if( e && e.constructor == Array ) {  //如果元素存在,且为数组
                    e.each ( f ) ; //递归调用法代器
                }else{  //否则,在元素上调用参数函数,并把元素值传递给函数
                    f.apply(e, [e]);
                }
                this.i++;    //递加计数器
            }
            this.i = null;     //如果通历完毕,则清空计数器
        }
    }
    catch(err){       //捕捉以后
    }
    return this;      //返回当前数组
}
//调用该迭代器
var a = [1, [2, [3, 4]]];
var f = function( x ) {
    alert(x);
}
a.each(f);     //调用迭代器,为每个元素执行一次函数传递
拓展 Array 方法的更多相关文章
- S5中新增的Array方法详细说明
		
ES5中新增的Array方法详细说明 by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu.com/wor ...
 - ES5中新增的Array方法详细说明
		
一.前言-索引 ES5中新增的不少东西,了解之对我们写JavaScript会有不少帮助,比如数组这块,我们可能就不需要去有板有眼地for循环了. ES5中新增了写数组方法,如下: forEach (j ...
 - 【原】javascript笔记之Array方法forEach&map&filter&some&every&reduce&reduceRight
		
做前端有多年了,看过不少技术文章,学了新的技术,但更新迭代快的大前端,庞大的知识库,很多学过就忘记了,特别在项目紧急的条件下,哪怕心中隐隐约约有学过一个方法,但会下意识的使用旧的方法去解决,多年前ES ...
 - 5个数组Array方法: indexOf、filter、forEach、map、reduce使用实例
		
ES5中,一共有9个Array方法 Array.prototype.indexOf Array.prototype.lastIndexOf Array.prototype.every Array.pr ...
 - js Array 方法总结
		
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
 - Javascript Array 方法整理
		
Javascript Array 方法整理 Javascript 数组相关方法 说明 大多数其它编程语言不允许改变数组大小,越界访问索引会报错,但是 javascript不会报错,不过不建议直接修改a ...
 - ECMAScript5中新增的Array方法实例详解
		
ECMAScript5标准发布于2009年12月3日,它带来了一些新的,改善现有的Array数组操作的方法.(注意兼容性) 在ES5中,一共有9个Array方法:http://kangax.githu ...
 - JavaScript中Array方法总览
		
title: JavaScript中Array方法总览 toc: true date: 2018-10-13 12:48:14 push(x) 将x添加到数组最后,可添加多个值,返回数组长度.改变原数 ...
 - 5个现在就该使用的数组Array方法: indexOf/filter/forEach/map/reduce详解(转)
		
ECMAScript5标准发布于2009年12月3日,它带来了一些新的,改善现有的Array数组操作的方法.然而,这些新奇的数组方法并没有真正流行起来的,因为当时市场上缺乏支持ES5的浏览器. ...
 
随机推荐
- Spring Cloud Eureka源码分析之服务注册的流程与数据存储设计!
			
Spring Cloud是一个生态,它提供了一套标准,这套标准可以通过不同的组件来实现,其中就包含服务注册/发现.熔断.负载均衡等,在spring-cloud-common这个包中,org.sprin ...
 - Jenkins备份
			
目录 一.目录结构 二.插件备份 一.目录结构 Jenkins的所有数据都是存放在文件中的,所以,Jenins备份其实就是备份Jenkins_HOME目录. JENKINS_HOME目录的机构如下: ...
 - GDB调试增强篇
			
GDB中应该知道的几个调试方法 七.八年前写过一篇<用GDB调试程序>, 于是,从那以后,很多朋友在MSN上以及给我发邮件询问我关于GDB的问题,一直到今天,还有人在问GDB的相关问题.这 ...
 - 2020腾讯犀牛鸟网络安全T-Star高校挑战赛writeup
			
签到 浏览器禁用js,在www目录下有 key 命令执行基础 使用 | 可以执行其他命令,在 ../目录下有 key.php cat 一下读出来 你能爆破吗 一开始随便输了个账号的时候不是这个页面,抓 ...
 - Android4.4开机动画播放视频
			
Android4.4系统启动时,播放自定义bootanimation.zip动画时,由于分辨率为1280x720,bootanimation.zip包也很大,播放太卡,所以将开机动画修改为播放视频.如 ...
 - .net Core 使用 iTextSharp 生成PDF 简单示例
			
在 Nuget 中导入需要的插件: 实现的代码: 1 [HttpGet, Route("CreatePdf")] 2 public Response CreatePdf() 3 { ...
 - JAVA火星坐标系、百度坐标系、84坐标系相互转换工具类
			
/** * 坐标系转换工具类 */ public class PositionUtil { public static double pi = 3.1415926535897932384626; pu ...
 - JAVA使用反射获取对象的所有属性名
			
public static void main(String[] args) { Field[] fields=BaseSalary.class.getDeclaredFields(); for (i ...
 - 一个VS主题网站https://studiostyl.es/
			
地址: https://studiostyl.es/ 用法: 工具->导入和导出设置->导入选定的环境设置->是,保存我当前的设置->选择下载的主题文件,完成.
 - 【九度OJ】题目1195:最长&最短文本 解题报告
			
[九度OJ]题目1195:最长&最短文本 解题报告 标签(空格分隔): 九度OJ http://ac.jobdu.com/problem.php?pid=1195 题目描述: 输入多行字符串, ...