Array filter()应用实例

Array filter()

filter 直译 过滤器 显然起到的效果是过滤、筛选;
filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。

注意
  1. filter() 不会对空数组进行检测。
    2.filter() 不会改变原始数组.

语法

array.filter(function(currentValue,index,arr), thisValue)

实例应用及参数分析

基本用法

//定义一个数组
var ages = [32, 33, 16, 40];
//定义一个函数 返回大于18的元素
  function checkAdult(age) {
      return age >= 18;
  }
//返回原数组大于18的元素组成新的数组
  var newAges = ages.filter(checkAdult);

参数分析

var ages = [32, 33, 16, 40];
var newAges= ages .filter((item,index,ages) => { 逻辑运算  return boolean; },thisVue);
             //item 要检测的数组的当前元素  好比 遍历中的一个元素;  必选参数
            //index 当前元素在原数组中的下标索引   可选参数
            //ages 调用filter的当前数组,用于作用域的问题,可能需要传入;  可选参数
            //return boolean类型的数组;
            //filter的参数2 thisVue ; 作用域this 严格模式下filter的回调函数中的this = thisVue传入的值,也是因作用域的问题,选择性传入;
            /*官方所说:如果为 `filter` 提供一个 `thisArg` 参数,则它会被作为 `callback` 被调用时的 `this` 值。
              否则,`callback` 的 `this` 值在非严格模式下将是全局对象,严格模式下为 `undefined`。
            `callback` 函数最终观察到的 `this` 值是根据[通常函数所看到的 "this"的规则](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/this)确定的。
            */

var age = 18;
 var newAges2 = ages .filter((item,index,ages) => {
    return item>this; //这里的this就是filter传入的参数2 age;
  },age);
console.log(newAges2 );
//  打印结果 32/33/40

浪客行1213的简书


xhh
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文包括:1、Filter简介2、Filter是如何实现拦截的?3、Filter开发入门4、Filter的生命周期...
    廖少少阅读 7,394评论 3 56
  • 学习任何编程语言,数组都是绕不过去的坎,每个编程语言都在其标准库里面内置了功能强大的Array对象。通过参考阮一峰...
    吴少在coding阅读 842评论 0 3
  • 布隆过滤器 Bloom Filter 布隆过滤器,用来判断一个元素是否在集合中。它的特点是节省空间,但是有误判。有...
    周肃阅读 4,749评论 0 5
  • 1 构造函数 上面代码中,Array构造函数的参数2,表示生成一个两个成员的数组,每个位置都是空值。 如果没有使用...
    徵羽kid阅读 443评论 0 0
  • 转载文章 angularjs 过滤器(filter)正如其名,作用就是接收一个输入,通过某个规则进行处理,然后返回...
    飞将军阅读 634评论 0 2