Solución… 😄
.
Para el reto agregamos el nuevo método myFilter al prototype del Array, creando una función con un callback pasado como parámetro.
.
Algo interesante es que no se puede crear usando una función flecha como: (callback) => { // etc }. Porque más adelante la palabra clave this en una arrow function hace referencia al contexto en el que se definió la función, en lugar de al objeto Array al que se está aplicando el método.
.
Creamos un array filtrado vacío. Recorremos el Array comparando sus elementos con el callback y si cumple lo añadimos al array filtrado.
.
Retornamos el array filtrado.
.
export function arrayModified() {
Array.prototype.myFilter = function (callback) {
let filtered = [];
for (let i = 0; i < this.length; i++) {
if (callback(this[i])) {
filtered.push(this[i]);
}
}
return filtered;
};
}
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?