前端手动封装数组的foreach,map,filter,every,some,Reduce,reduceRight方法

我是歌谣 放弃很容易 但坚持一定很酷
公众号小歌谣 谢谢关注

前言

Foreach

Array.prototype.myForEach = function (cb) {var _arr = this;var _len = _arr.length;var _arg2 = arguments[1] || window;for (var i = 0; i < _len; i ++) {cb.apply(_arg2, [_arr[i], i, _arr]);}
}

Map

Array.prototype.myMap  = function (cb) {var _arr = this;var _len = _arr.length;var _arg2 = arguments[1] || window;var _newArr = [];var _item;var _res;for (var i = 0; i < _len; i ++) {_item = deepClone(_arr[i]);_res = cb.apply(_arg2, [_item, i, _arr]);_res && _newArr.push(_res);}return _newArr;
}

Filter

Array.prototype.myFilter = function (cb) {var _arr = this;var _len = _arr.length;var _arg2 = arguments[1] || window;var _newArr = [];var _item;for (var i = 0; i < _len; i ++) {_item = deepClone(_arr[i]);cb.apply(_arg2, [_item, i, _arr]) ? _newArr.push(_item) : '';}return _newArr;
}

Every

Array.prototype.myEvery = function (cb) {var _arr = this;var _len = _arr.length;var arg2 = arguments[1] || window;var _res = true;for (var i = 0; i < _len; i ++) {if (!cb.apply(arg2, [_arr[i], i, _arr])) {_res = false;break;}}return _res;
}

Some

Array.prototype.mySome = function (cb) {var _arr = this;var _len = _arr.length;var _arg2 = arguments[1] || window;var _res = false;for (var i = 0; i < _len; i ++) {if (cb.apply(_arg2, [_arr[i], i, _arr])) {_res = true;break;}}return _res;
}

Reduce

function deepClone (origin, target) {var tar = target || {};var toStr = Object.prototype.toString;var arrayType = '[object Array]';for (var k in origin) {if (origin.hasOwnProperty(k)) {if (typeof origin[k] === 'object' && origin[k] !== null) {tar[k] = toStr.call(origin[k]) === arrayType ? [] : {};deepClone(origin[k], tar[k]);} else {tar[k] = origin[k];}}}return tar;
}
Array.prototype.myReduce = function (cb, initialValue) {var _arr = this;var _len = _arr.length;var _arg3 = arguments[2] || window;var _item;for (var i = 0; i < _len; i ++) {_item = deepClone(_arr[i]);initialValue = cb.apply(_arg3, [initialValue, _item, i, _arr]);}return initialValue;
}

reduceRight

Array.prototype.myReduceRight = function (cb, initialValue) {var _arr = this;var _len = _arr.length;var _arg3 = arguments[2] || window;var _item;for (var i = _len; i >= 0; i --) {_item = deepClone(_arr[i]);initialValue = cb.apply(_arg3, [initialValue, _item, i, _arr]);}return initialValue;
}

我是歌谣放弃很难 但是坚持一定很酷

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/410934.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[html] a标签的默认事件禁用后,如何实现跳转?

[html] a标签的默认事件禁用后&#xff0c;如何实现跳转&#xff1f; 给a标签添加点击事件利用 location.href 进行跳转个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面…

锤子剪刀布pat-1018

题目描述 大家应该都会玩“锤子剪刀布”的游戏&#xff1a;现给出两人的交锋记录&#xff0c;请统计双方的胜、平、负次数&#xff0c;并且给出双方分别出什么手势的胜算最大。 输入描述: 输入第1行给出正整数N&#xff08;<105&#xff09;&#xff0c;即双方交锋的次数。随…

mda.helper.php,dedecms后台更新缓慢甚至卡死怎么办

问题描述&#xff1a;如果我们在使用织梦程序(2018-01-09)&#xff0c;有可能会遇到后台更新网站、更新文档HTML、添加文档卡死的问题。该如何解决呢&#xff1f;(学习视频分享&#xff1a;编程视频)解决方法&#xff1a;如果你正在用的是最新版的织梦程序(2018-01-09)&#xf…

关于开心网的服务器

1.开心网的主站采用了DNS轮询技术&#xff0c;所谓DNS轮询&#xff0c;就是一个域名对应几条A记录&#xff0c;如开心网的主站有6台服务器DNS轮询有一个缺点&#xff0c;如果域名所指向的某一个台服务器或几台服务器出现了问题&#xff08;如Web服务器停止服务)&#xff0c;则D…

[html] 如何禁用掉a标签的默认事件?

[html] 如何禁用掉a标签的默认事件&#xff1f; a onclick"prevent" function prevent(e) { e.preventDefault(); }个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关…

PHP3.2.3 where or,WHERE · ThinkPHP3.2.3完全开发手册 · 看云

where方法的用法是ThinkPHP查询语言的精髓&#xff0c;也是ThinkPHP ORM的重要组成部分和亮点所在&#xff0c;可以完成包括普通查询、表达式查询、快捷查询、区间查询、组合查询在内的查询操作。where方法的参数支持字符串和数组&#xff0c;虽然也可以使用对象但并不建议。##…

P2896 [USACO08FEB]一起吃饭Eating Together 解题报告

题目传送门 题目不是很难&#xff0c;看了一会就想到了&#xff0c;但因为一些细节WA了好几遍qwq 但代码却一点一点压短了&#xff08;看了别人的精简写法&#xff09; 题目分析 把一个序列改成不上升或不下降子序列&#xff0c;求最少修改次数。 一般情况有求 LIS 和 LDS 的 O…

[html] 写出不定宽度的子级div,在相对于固定宽度的父级元素水平居中的布局

[html] 写出不定宽度的子级div&#xff0c;在相对于固定宽度的父级元素水平居中的布局 <div class"father"> <div class"son"></div> </div>.fateher { display:flex; algin-items: center; }个人简介 我是歌谣&#xff0c;欢迎…

MySQL第五天

复制表结构 1 #从src_table复制到dst_table2 CREATETABLEdst_table LIKEsrc_table;3 4 #另外一种方法5 CREATETABLEdst_table SELECT*FROMsrc_table WHERE0;6 7 #第一种方法比第二种方法简单实用效率高8 9 10 #复制表中数据11 #完全复制src_table12 CREATETABLEdet_table SELEC…

九种跨域方式实现原理

前言 前后端数据交互经常会碰到请求跨域&#xff0c;什么是跨域&#xff0c;以及有哪几种跨域方式&#xff0c;这是本文要探讨的内容。 本文完整的源代码请猛戳github 博客 一、什么是跨域&#xff1f; 1.什么是同源策略及其限制内容&#xff1f; 同源策略是一种约定&#xff0…

oracle存储过程更新权限不足,oracle创建存储过程时报权限不足

今天在自己的用的下创建了一个简单的存储过程做测试create or replace procedure hello isv_variable number(3);beginselect count(*)into v_variablefrom dual;dbms_output.put_line(‘the variable is’||v_variable);end hello;结果报错&#xff0c;我先检查了一下我用户的…

[html] 说说你对移动优先布局的理解

[html] 说说你对移动优先布局的理解 移动优先布局&#xff0c;应该是基于这样一个前提&#xff1a; 如今web页面的移动端用户量&#xff08;访问量&#xff09;要远远大于pc端等设备 所以是优先服务于移动端的 那么采用移动优先布局的策略才能最大化页面的使用 移动优先布局即…

关于TableView中图片的延时加载(转)

经常我们会用tableView显示很多条目, 有时候需要显示图片, 但是一次从服务器上取来所有图片对用户来浪费流量, 对服务器也是负担.最好是按需加载,即当该用户要浏览该条目时再去加载它的图片。重写如下方法- (void)tableView:(UITableView *)tableView willDisplayCell:(UITable…

oracle数据库视图有红叉,oracle触发器 前面的红叉是什么意思

一个触发器试图修改或查询目前正在触发器语句修改的表。建议改一下你的触发器逻辑。网上也有解释:error:ora-04091: table name is mutating, trigger/function may not see itcause:a statement executed a trigger or custom pl/sql function. that trigger/function tried t…

WinForm控件之【LinkLabel】

基本介绍 超链接标签控件&#xff0c;随处可见应用极为广泛&#xff0c;一般用作触发指定链接跳转指定页面等操作。 常设置属性、事件 ActiveLinkColor&#xff1a;用户单击超链接时超链接显示的颜色&#xff1b; LinkColor&#xff1a;超链接默认状态时显示的颜色&#xff1b;…

[html] 请使用一个div写出有三条横线的小图标

[html] 请使用一个div写出有三条横线的小图标 #menu{ width: 25px; height: 3px; border-top: 3px solid #0; border-bottom: 3px solid #0; padding: 5px 0; background-clip: content-box; background-color: #0; }个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知…

WCF Basic(1)-操作重载

现网上关于WCF所谓是很多,但好书很少.Programming WCF Services 应该算是一本非常好的书。结合书和代码总结一下. 一.服务器端操作重载 1.接口本身支持重载interface ICalculator{int Add(int arg1, int arg2);double Add(double arg1, double arg2);} 2.若将此接口作为服务契约…

php cpu缓存 执行 代码,缓存PHP页面的代码,可以减轻CPU和MYSQL负担

/** 名称: 极光缓存** 作者: DCD* mail: haodan-_-b163.com** web开发群: 3574636* http://www.525ok.com** 完成日期: 2006-2-27** 版本&#xff1a;V1.00** 说明&#xff1a;** 缓存网页内容&#xff0c;减轻服务器CPU负荷&#xff0c;使用简便、灵活。* 本程序…

/etc/shadow文件

root:$6$r0DcB6cchtgqQqNP$UjLh8/5SB2ixbzLU10qYMpBP.NbOp/poyfzoGZFiEiVXO2lWABrB5SU/RWH/fDgkHzNYSKvfbbfpCZRkVBpFZ1::0:99999:7::: $6$开头的&#xff0c;表明是用SHA-512加密的 $r0DcB6cchtgqQqNP$这里中间表示盐 UjLh8/5SB2ixbzLU10qYMpBP.NbOp/poyfzoGZFiEiVXO2lWABrB5S…

[html] 使用div+css进行布局有什么好处?

[html] 使用divcss进行布局有什么好处&#xff1f; 我记得刚学的是时候&#xff0c;说最一开始用的是table去实现布局的。HTML语义标签还是挺多的&#xff0c;就是div打发好啊个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定…