㈠ js中怎樣實現數組過濾函數filter
filter 是根據返回的值是否為真來判斷是否保留元素,所以可以這樣實現
Array.prototype.filter = Array.prototype.filter || function(func) {
var arr = this;
var r = [];
for (var i = 0; i < arr.length; i++) {
if (func(arr[i])) {
r.push(arr[i]);
}
}
return r;
}
因為目前大部分瀏覽器有 filter 實現,所以測試時只能改個名字叫 filterx,下面是測試代碼
var data = [1,2,3,4,5,6,7];
Array.prototype.filterx = Array.prototype.filterx || function(func) {
var arr = this;
var r = [];
for (var i = 0; i < arr.length; i++) {
if (func(arr[i])) {
r.push(arr[i]);
}
}
return r;
}
console.log(data.filter(function(t) {
return t % 3 > 0;
}));
console.log(data.filterx(function(t) {
return t % 3 > 0;
}));