定义:
Array.prototype.filter()
filter()
方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。
参数:
callback
用来测试数组的每个元素的函数。返回 true
表示该元素通过测试,保留该元素,false
则不保留。它接受以下三个参数:
element
数组中当前正在处理的元素。
index
可选
正在处理的元素在数组中的索引。
array
可选
调用了 filter
的数组本身。
thisArg
可选
执行 callback
时,用于 this
的值。
<script>
// Array.prototype.myFilter(),效果等同于Array.prototype.filter()
arr = [1,2,3,4,5,6,6,7,8,9,10];
var result1 = arr.filter(function(val,index,arr){
return index===0;
});
var result3 = arr.filter(function(val){
return val>3;
});
console.log(result1);
console.log(result3);
console.log("---------myFilter()----------");
Array.prototype.myFilter = function(callback){
var newArr = [];
for(var i = 0; i < this.length; i++) {
if(callback(this[i],i,this)) {
newArr.push(this[i])
}
}
return newArr;
}
var result2 = arr.myFilter(function(val,index,arr){
return index===0;
});
var result4 = arr.myFilter(function(val){
return val>3;
});
console.log(result2);
console.log(result4);
</script>