博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js数组方法forEach,map,filter,every,some实现
阅读量:4549 次
发布时间:2019-06-08

本文共 2946 字,大约阅读时间需要 9 分钟。

Array.prototype.map = function(fun /*, thisp*/){  var len = this.length;  if (typeof fun != "function")    throw new TypeError();  var res = new Array(len);  var thisp = arguments[1];  for (var i = 0; i < len; i++)  {    if (i in this)      res[i] = fun.call(thisp, this[i], i, this);  }  return res;};Array.prototype.filter = function(fun /*, thisp*/){  var len = this.length;  if (typeof fun != "function")    throw new TypeError();  var res = new Array();  var thisp = arguments[1];  for (var i = 0; i < len; i++)  {    if (i in this)    {      var val = this[i]; // in case fun mutates this      if (fun.call(thisp, val, i, this))        res.push(val);    }  }  return res;};Array.prototype.some = function(fun /*, thisp*/){  var len = this.length;  if (typeof fun != "function")    throw new TypeError();  var thisp = arguments[1];  for (var i = 0; i < len; i++)  {    if (i in this && fun.call(thisp, this[i], i, this))      return true;  }  return false;};Array.prototype.every = function(fun /*, thisp*/){  var len = this.length;  if (typeof fun != "function")    throw new TypeError();  var thisp = arguments[1];  for (var i = 0; i < len; i++)  {    if (i in this && !fun.call(thisp, this[i], i, this))    return false;  }  return true;};Array.prototype.forEach = function(fun /*, thisp*/){  var len = this.length;  if (typeof fun != "function")    throw new TypeError();  var thisp = arguments[1];  for (var i = 0; i < len; i++)  {    if (i in this)      fun.call(thisp, this[i], i, this);  }};

 

Array.prototype.map = function(fun /*, thisp*/) {

var len = this.length; if (typeof fun != "function") thrownewTypeError(); var res = newArray(len); var thisp = arguments[1]; for (var i = 0; i < len; i++) { if (i inthis) res[i] = fun.call(thisp, this[i], i, this); } return res; }; Array.prototype.filter = function(fun /*, thisp*/) {
var len = this.length; if (typeof fun != "function") thrownewTypeError(); var res = newArray(); var thisp = arguments[1]; for (var i = 0; i < len; i++) { if (i inthis) { var val = this[i]; // in case fun mutates thisif (fun.call(thisp, val, i, this)) res.push(val); } } return res; }; Array.prototype.some = function(fun /*, thisp*/) {
var len = this.length; if (typeof fun != "function") thrownewTypeError(); var thisp = arguments[1]; for (var i = 0; i < len; i++) { if (i inthis && fun.call(thisp, this[i], i, this)) returntrue; } returnfalse; }; Array.prototype.every = function(fun /*, thisp*/) {
var len = this.length; if (typeof fun != "function") thrownewTypeError(); var thisp = arguments[1]; for (var i = 0; i < len; i++) { if (i inthis && !fun.call(thisp, this[i], i, this)) returnfalse; } returntrue; }; Array.prototype.forEach = function(fun /*, thisp*/) {
var len = this.length; if (typeof fun != "function") thrownewTypeError(); var thisp = arguments[1]; for (var i = 0; i < len; i++) { if (i inthis) fun.call(thisp, this[i], i, this); } };

转载于:https://www.cnblogs.com/wayofeng/p/7273960.html

你可能感兴趣的文章
CSS3圆角详解(border-radius)
查看>>
Python正则表达式指南
查看>>
前端学习之JavaScript中的 NaN 与 isNaN
查看>>
chrome安装json view插件
查看>>
CSS div 高度满屏
查看>>
页面回发速度由 6 秒减少为 0.6 秒的真实案例!
查看>>
一种实现C++反射功能的想法(一)
查看>>
lvs+keepalived+nginx高性能负载均衡集群
查看>>
XXL-Job高可用集群搭建
查看>>
JDBC
查看>>
CodeForces - 123E Maze
查看>>
ZOJ 1709 Oil Deposits(dfs,连通块个数)
查看>>
安卓开源项目周报0308
查看>>
记可敬可佩的老车同志
查看>>
Maven in 5 Minutes(Windows)
查看>>
常用前端开发工具合集
查看>>
T-SQL:SQL Server-数据开发(经典)
查看>>
IOS 截取字符串
查看>>
键盘控制div移动并且解决停顿问题(原生js)
查看>>
矩阵快速幂优化线性递推
查看>>