首页 > 编程笔记 > JavaScript笔记 > JS数组
JS filter()方法:根据指定条件过滤数组元素
JavaScript filter() 方法可以返回数组中满足指定条件的元素。具体用法如下:
返回值是一个包含回调函数为其返回 true 的所有值得新数组。如果回调函数为 array 的所有元素返回 false,则新数组的长度为 0。
对于数组中的每个元素,filter 方法都会调用 callbackfn 函数一次(采用升序索引顺序)。不为数组中缺少的元素调用该回调函数。回调函数的用法与 map 相同。
除了数组对象之外,filter 方法可由具有 length 属性,且具有已按数字编制索引的属性名的任何对象使用。
array.filter(callbackfn[, thisArg]);
参数说明:- array:必需参数,一个数组对象。
- callbackfn:必需参数,一个接收最多三个参数的函数。对于数组中的每个元素,filter 方法都会调用 callbackfn 函数一次。
- thisArg:可选参数,可在 callbackfn 函数中为其用 this 关键字的对象。如果省略 thisArg,则 undefined 将用作 this 值。
返回值是一个包含回调函数为其返回 true 的所有值得新数组。如果回调函数为 array 的所有元素返回 false,则新数组的长度为 0。
对于数组中的每个元素,filter 方法都会调用 callbackfn 函数一次(采用升序索引顺序)。不为数组中缺少的元素调用该回调函数。回调函数的用法与 map 相同。
除了数组对象之外,filter 方法可由具有 length 属性,且具有已按数字编制索引的属性名的任何对象使用。
示例1
下面示例演示如何使用 filter 方法筛选出数组中的素数。function f (value, index, ar) { high = Math.floor(Math.sqrt(value)) + 1; for (var div = 2; div <= high; div ++) { if (value % div == 0) { return false; } return true; } var a = [31,33,35,37,39,41,43,45,57,49,51,53]; var a1 = a.filter(f); console.log(a1); //31,37,41,43,47,53
示例2
下面示例演示如何使用 filter 方法过滤掉数组中在指定范围外的元素。var f = function (value) { if (typeof value !== 'number'){ return false; } else { return value >= this.min && value <= this.max; } } var a = [6, 12, "15", 16, "the", -12]; var obj = {min : 10, max : 20}; var r = a.filter(f, obj); console.log(r); //12,16
示例3
下面示例演示如何使用 filter 方法过滤字符串中每个单词的首字母。function f (value, index, ar) { if (index == 0) { return true; } else { return ar[index - 1] === " "; } } var a = "The quick brown fox jumps over the lazy dog."; var subset = [].filter.call(a, f); console.log(subset); //T,q,b,f,j,o,t,l,d
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算