zl程序教程

您现在的位置是:首页 >  后端

当前栏目

JS filter()方法:根据指定条件过滤数组元素

JS方法数组 指定 元素 条件 根据 过滤
2023-06-13 09:12:01 时间
JavaScript filter() 方法可以返回数组中满足指定条件的元素。具体用法如下:

array.filter(callbackfn[, thisArg]);

参数说明:


callbackfn:必需参数,一个接收最多三个参数的函数。对于数组中的每个元素,filter 方法都会调用 callbackfn 函数一次。 thisArg:可选参数,可在 callbackfn 函数中为其用 this 关键字的对象。如果省略 thisArg,则 undefined 将用作 this 值。

返回值是一个包含回调函数为其返回 true 的所有值得新数组。如果回调函数为 array 的所有元素返回 false,则新数组的长度为 0。

对于数组中的每个元素,filter 方法都会调用 callbackfn 函数一次(采用升序索引顺序)。不为数组中缺少的元素调用该回调函数。回调函数的用法与 map 相同。

除了数组对象之外,filter 方法可由具有 length 属性,且具有已按数字编制索引的属性名的任何对象使用。

下面示例演示如何使用 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

下面示例演示如何使用 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

下面示例演示如何使用 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

23119.html

javaJavaScript