.filter
by trentHarlem
JavaScript
Array.prototype.filter2 = function(func, thisArg) {
let arr = []
for (let i = 0; i < this.length; i++) {
if(func(this[i])){
arr.push(this[i])
}
}
return arr
}
/* Array.prototype.filter = function(fn){
var res = [];
for (var i = 0; i<this.length; i++){
if (fn(this[i])){
res.push(this[i]);
}
}
return res;
}
*/
/* if (!Array.prototype.filter){
Array.prototype.filter = function(func, thisArg) {
'use strict';
if ( ! ((typeof func === 'Function' || typeof func === 'function') && this) )
throw new TypeError();
var len = this.length >>> 0,
res = new Array(len), // preallocate array
t = this, c = 0, i = -1;
var kValue;
if (thisArg === undefined){
while (++i !== len){
// checks to see if the key was set
if (i in this){
kValue = t[i]; // in case t is changed in callback
if (func(t[i], i, t)){
res[c++] = kValue;
}
}
}
}
else{
while (++i !== len){
// checks to see if the key was set
if (i in this){
kValue = t[i];
if (func.call(thisArg, t[i], i, t)){
res[c++] = kValue;
}
}
}
}
res.length = c; // shrink down array to proper size
return res;
};
} */
console.log(([1,2,3,4].filter2((num)=>{ return num > 3}), [4]))
console.log([1,2,3,4].filter2)