martes, 21 de abril de 2015

JavaScript - Función como parámetro

//filter es una func que recibe 2 parametros: 
// - uno es la lista de COSAS (no importa de que)
// - el otro parametro es una funcion que evalua cada elemento
 function filter(lista, valid){
  var nLista = [];
  for(var i = 0; i < lista.length; i++){
   if ( valid(lista[i]) ){
    nLista.push(lista[i]);
   }
  }
  return nLista;
 }
 
 //----------------------------------------
 var numeros = [3,8,7,0,9,67,23,12,2,23,76] 
 //quiero los numeros pares
 var res = filter(numeros, function(e){
   return e % 2 == 0
 }) 
 console.log(res)
 //----------------------------------------
 function contiene(palabra, letra){  
  for(var i =0; i<palabra.length; i++){
    if (palabra[i] == letra) return true;
  }
  return false;
 }
 
 var nombres = ["Joao","Ricardo","Elias","Pepe"];
 var res = filter(nombres, function(e){
   return contiene(e,"o")
 })
 console.log(res)
 //----------------------------------------
 
 function Person(nombre, edad){
  this.nombre = nombre,
  this.edad = edad;
 }
 
 var Joao = new Person("Joao", 11);
 var Ricardo = new Person("Ricardo", 19);
 
 var personas = [Joao, Ricardo];
 var res = filter(personas, function(e){
  return e.edad > 18;
 })
 console.log(res)

No hay comentarios:

Publicar un comentario