# 题目描述
实现Array.filter函数的功能且该新函数命名为"_filter"。
# 测试用例
用例1
function test() {
  const a = [5, 6, 7];
  const newa = a._filter((i) => i > 5);
  const judge = JSON.stringify(newa) === "[6,7]";
  return judge;
}
console.log(test());
 1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
预计输出true
用例2:
输入: [1,2]._filter(i => i>1)
输出:[2]
# 实现思路
Array.filter包含三个参数
var newArray = arr.filter(callback(item,index,thisArr))
变量含义如下:
callback:测试函数item:当前元素index:当前索引thisArr:调用了filter的数组本身newArray:返回的新数组,包含所有通过测试的元素。
# 代码实现
Array.prototype._filter = function (callback){
  if (typeof callback !== "function") {
    return;
  }
  // 执行callback
  const arr = this;
  var res = [];
  for (let i = 0; i < arr.length; i++) {
    if (callback(arr[i], i, arr)) {
      res.push(arr[i]);
      console.log("test");
    }
  }
  console.log("res: ", res);
  return res;
};
 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17