js数组方法forEach,map,filter,every,some实现
时间:2020-05-28
本文章向大家介绍js数组方法forEach,map,filter,every,some实现,主要包括js数组方法forEach,map,filter,every,some实现使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
数组常用方法的实现
1 Array.prototype.map = function(fun /*, thisp*/) 2 { 3 var len = this.length; 4 if (typeof fun != "function") 5 throw new TypeError(); 6 7 var res = new Array(len); 8 var thisp = arguments[1]; 9 for (var i = 0; i < len; i++) 10 { 11 if (i in this) 12 res[i] = fun.call(thisp, this[i], i, this); 13 } 14 15 return res; 16 }; 17 18 Array.prototype.filter = function(fun /*, thisp*/) 19 { 20 var len = this.length; 21 if (typeof fun != "function") 22 throw new TypeError(); 23 24 var res = new Array(); 25 var thisp = arguments[1]; 26 for (var i = 0; i < len; i++) 27 { 28 if (i in this) 29 { 30 var val = this[i]; // in case fun mutates this 31 if (fun.call(thisp, val, i, this)) 32 res.push(val); 33 } 34 } 35 36 return res; 37 }; 38 39 Array.prototype.some = function(fun /*, thisp*/) 40 { 41 var len = this.length; 42 if (typeof fun != "function") 43 throw new TypeError(); 44 45 var thisp = arguments[1]; 46 for (var i = 0; i < len; i++) 47 { 48 if (i in this && fun.call(thisp, this[i], i, this)) 49 return true; 50 } 51 52 return false; 53 }; 54 55 Array.prototype.every = function(fun /*, thisp*/) 56 { 57 var len = this.length; 58 if (typeof fun != "function") 59 throw new TypeError(); 60 61 var thisp = arguments[1]; 62 for (var i = 0; i < len; i++) 63 { 64 if (i in this && !fun.call(thisp, this[i], i, this)) 65 return false; 66 } 67 68 return true; 69 }; 70 71 Array.prototype.forEach = function(fun /*, thisp*/) 72 { 73 var len = this.length; 74 if (typeof fun != "function") 75 throw new TypeError(); 76 77 var thisp = arguments[1]; 78 for (var i = 0; i < len; i++) 79 { 80 if (i in this) 81 fun.call(thisp, this[i], i, this); 82 } 83 };
原文地址:https://www.cnblogs.com/xfcao/p/12979037.html
- Docker系列教程07-Dockerfile指令详解
- Docker系列教程06-实战:修改Nginx首页
- prompt() 方法,弹框带输入框
- Docker系列教程05-容器常用命令
- 数据分析利器-NumPy
- 【LEETCODE】模拟面试-134-Gas Station
- Docker系列教程17-默认bridge网络中配置DNS
- Docker系列教程16-network命令
- 【LEETCODE】模拟面试-206. Reverse Linked List
- Eslint检测出的问题如何自动修复
- 【LEETCODE】模拟面试-215. Kth Largest Element in an Array
- Docker系列教程15-Docker容器网络
- 数据挖掘
- Docker系列教程14-Docker数据持久化
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 第十五章 并发版爬虫第二版 -- 完结
- 第十六章 分布式爬虫--准备工作
- go 搭建并行处理管道
- 新一代基于大数据的管理信息系统(MIS)报表需求开发
- 3. docker-compose实战--ghost app
- 2.1 Kubernetes--Pod
- 3. Kubernetes集群安装
- macOS VirtualBox 桥接模式 设置静态ip 且能和联网
- 重新初始化k8s master节点
- 5.k8s基本命令汇总
- 6. k8s + jenkins 实现持续集成(完)
- 7. 复制k8s Node节点 并重新初始化k8s-nodes2节点 (k8s连载)
- 8.k8s连载--重新生成k8s token(kubeadm join报错及解决)
- 3. dcoker容器的命令
- 4. 镜像的原理