一. 定义
**filter()**
方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
二. 用法
**filter()**
方法使用指定函数检测数组中的所有元素:
- 如果元素满足条件,则加入结果数组。
- 如果元素不满足条件,则不加入结果数组。
注意:
**filter()**
不会对空数组进行检测。**filter()**
不会改变原始数组。三. 手写代码
Array.prototype.newFilter = function(fn){
let arr = this;
let result = [];
for(let i=0; i<arr.length; i++){
if(fn(arr[i])){
result.push(arr[i]);
}
}
return result;
}
四. 测试代码
```javascript const arr = [ {id: 0, name: “0”}, {id: 1, name: “1”}, {id: 2, name: “2”},
{id: 3, name: “3”} ];
console.log(arr.filter(item => item.id > 1)); // [ { id: 2, name: ‘2’ }, { id: 3, name: ‘3’ } ] console.log(arr.newFilter(item => item.id > 1)); // [ { id: 2, name: ‘2’ }, { id: 3, name: ‘3’ } ]
console.log(arr.filter(item => item.id > 3)); // [] console.log(arr.newFilter(item => item.id > 3)); // [] ```