ES5 数组filter()方法

ES5 数组filter()方法

定义和用法
filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
注意: filter() 不会对空数组进行检测。
注意: filter() 不会改变原始数组。

array.filter(function(currentValue,index,arr), thisValue)
thisValue是参数函数的this指向,如果不传则是参数函数的this是undefined。

let arr = [1,45,77,5];
let b = arr.filter(function(curItem,curIndex,_arr){
  console.log(curItem,curIndex,_arr,this);
  return curItem>10;
},window)
console.log('b:',b); 

上面的代码,执行结果和预期的一样,this指向了window对象,b=[45,77]
下面用自己的方法实现filter()方法:

function myFilter(fn,_this){
  let r = [];
  if(typeof fn === "function") {
    let arr = this;
    for (let i =0; i 10;
},window);
console.log('c:',c);

你可能感兴趣的:(ES5 数组filter()方法)