filter函数的用法_JavaScript中forEach和filter的用法和原理
JavaScript中有许多好用的数组方法,例如说forEach,filter...等等
那这些方法是都有什么用途呢?以及自己能否写一个方法出来替代呢?
forEach方法
日常用法
我们拿到一组数据的时候,通常需要通过遍历循环拿到自己想要的数据。 forEach
函数能够做到这一点,通常是这样使用的。例如说我们下面数组这种,需要遍历循环这个数组。就能得到以下结果。
参数传递
forEach() 方法按升序为数组中含有效值的每一项执行一次 callback 函数。可依次向 callback 函数传入三个参数:
- 数组当前项的值 (ele)
- 数组当前项的索引 (index)
- 数组对象本身 (self)
var arr = [{name: 'abc', desc: '技术好', sex: 'm'}, {name: 'adsds', desc: '技术好', sex: 'f'}, {name: 'aaseed', desc: '技术好', sex: 'm'},{name: 'acccc', desc: '技术好', sex: 'f'}]// forEach()arr.forEach(function (ele, index, self) {console.log(ele, ele.name, ele.sex);})
实现一个forEach()方法
Array.prototype.forEach = function (func) {var len = this.length;var _this = arguments[1] != undefined ? arguments[1] : window;//_this 值的是可以传递this指向for (var i = 0; i < len; i++) {func.apply(_this, [this[i], i, this]);}}var obj = { name: 'feng' }function deal(ele, index, self) {console.log(ele, index, self, this);}arr.forEach(deal, obj);
就能得到一个功能相同的方法
filter方法
日常用法
filter() 方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。MDN如是说。例如说我们想要得到上面数组中name为accc的数据
var newArr = arr.filter(function (ele, index, array) {return ele.name == 'acccc'})
传递参数
callback
用来测试数组的每个元素的函数。返回
true
表示该元素通过测试,保留该元素,false
则不保留。它接受以下三个参数:element
数组中当前正在处理的元素。index
可选正在处理的元素在数组中的索引。array
可选调了filter
的数组本身。
thisArg
可选执行
callback
时,用于this
的值。
实现一个myfilter方法()
想到filter能够过滤想要的东西,那肯定是有遍历的。
Array.prototype.myfilter = function (func) {var arr = [];var len = this.length;var _this = arguments[1] || window;for (var i = 0; i < len; i++) {func.apply(_this, [this[i], i, this]) && arr.push(this[i]);}return arr;}var obj = { name: 'feng' }var newArr = arr.myfilter(function (ele, index, self) {if (ele.sex == 'm') {return true;} else {return false;}})console.log(newArr);
我们在调用myfilter
方法把性别是男的过滤出来
本文由博客群发一文多发等运营工具平台 OpenWrite 发布
filter函数的用法_JavaScript中forEach和filter的用法和原理相关推荐
- promise用法_JavaScript中的async/await的用法和理解
昨天更新的是"JavaScript中的Promise使用详解",其实也就是说了下基本用法和自己对Promise的理解,可能有错误之处,也欢迎指出.今天就说一说"JavaS ...
- python中sorted函数的用法_Python中map,reduce,filter和sorted函数的使用方法
map map(funcname, list) python的map 函数使得函数能直接以list的每个元素作为参数传递到funcname中, 并返回响应的新的list 如下: def sq(x): ...
- matlab的filter函数,filter函数用法 matlab中filter函数的用法
matlab中filter函数的用法如果你深爱的人此刻在你身边陪你,你怎么会有时间来看这些文字呢 离散系统的差分方程为 2y[k]-y[-1]-3y[k-2]=2x[k]-x[k-1] x[k]=(0 ...
- Python函数式编程中map()、reduce()和filter()函数的用法
Python中map().reduce()和filter()三个函数均是应用于序列的内置函数,分别对序列进行遍历.递归计算以及过滤操作.这三个内置函数在实际使用过程中常常和"行内函数&quo ...
- filter函数的用法_函数周期表丨筛选丨表丨CALCULATETABLE
CALCULATETABLE函数 CALCULATETABLE函数属于"筛选"类函数,隶属于"表函数". 某种意义上来说,CALCULATETABLE函数其实就 ...
- python中divmod函数的用法_Python中divmod函数的用法
Python中divmod函数的用法,语言,余数,是一种,面向对象,函数 Python中divmod函数的用法 Python中divmod函数的用法 在Python中divmod函数的作用是把除数和余 ...
- filter() 函数的用法
下面通过一个实例来演示 filter() 函数的用法.比如说,定义一个 list 变量,里边放置若干学生的成绩信息(包括语文.数学和英语).要求使用 filter() 函数筛选出偏科的学生名单. 如何 ...
- python中filter函数的用法
描述 filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换. 该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为 ...
- html中filter函数的用法,filter函数怎么使用
JavaScript中的arr.filter()函数用于从给定数组创建一个新数组,该数组仅包含给定数组中满足参数函数设置条件的那些元素.下面我们就来具体看一下filter()的使用方法. filter ...
最新文章
- Ubuntu 安装 Docker
- 2016 大数据版图
- 基于语音识别的微博签到系统
- PHP的Smarty较为完整的笔记
- 股市大涨是不是楼市就要跌了?
- mysql ado.net 实体数据模型_Visual Studio2017中如何让Entity Framework工具【ADO.NET实体数据模型】支持MYSQL数据源...
- 大脑可以自动修复酗酒造成的脑细胞损坏
- 设计模式总结(Java)—— 单例模式
- 95-230-026-源码-WordCount走读-本地运行SubmitJob的过程
- 【shell】Shell编程的前篇以及通过编程实现,jdk的安装
- mvc创建连接mysql_五、 创建连接串连接本地数据库(ASP.NET MVC5 系列)
- php fopen下载文件,php fopen下载远程文件的函数 | 学步园
- 安卓自定义控件,自行绘制文字
- 4g通信模块怎么连接sim卡_SIM卡GPRS模块知识详解 浅谈SIM卡GPRS之原理模块
- C++ 数学与算法系列之高斯消元法求解线性方程组
- 2017,知识与财富
- 【最新】2020年注册测绘师考试测绘综合能力真题及参考答案
- java毕业设计旅拍平台源码+lw文档+mybatis+系统+mysql数据库+调试
- 第一次尝试使Windows Live Writer发布日志
- 《四维全息算法》9--四维全息算法的基本思路是什么?股市数据是具有分形迭代特征的随机游走
热门文章
- c++动态绑定和动态绑定
- Android——数据存储(课堂代码整理:SharedPreferences存储和手机内部文件存储)...
- HDU 1253-大逃亡(裸-DBFS)
- 个人密码安全策略 [转载]
- 通用权限管理系统组件 (GPM - General Permissions Manager) 给信息管理系统加一个初始化的功能,调用存储过程...
- containers文件夹可以删除吗_电脑进行C盘清理,appdata文件夹可以删除吗?
- php识别号码格式豹子,[转载]php新手入门之PHP常用特殊运算符号
- 我的世界java和pe版_《我的世界》pe版不一样的方块世界
- tf callbacks
- java 位运算符赋值_java-运算符(算术、赋值 =、关系、逻辑、三元、位运算符)...