Creación de Funciones

En lugar de repetir el código para manipular los arreglos en todo el programa, una mejor práctica es definir un conjunto de funciones que manipulen los datos de la aplicación.

Declarando funciones globales

En Javascript existen varias formas de crear funciones. La más simple es usando la cláusula function.

function <nombre-funcion>() { // contenido de la función }

En este caso, las funciones se declaran en un espacio global y pueden ser utilizadas por todos los componentes de la aplicación.

Funciones para manipular un arreglo

Consideremos un listado de ciudades. Es posible declarar un arreglo de objetos y un conjunto de funciones que manipulen ese arreglo.

El siguiente código en Javascript permite crear un arreglo global con los datos de tres ciudades:

// arreglo de objetos var cities = [ { "id" : "1", "nombre" : "Bogota" }, { "id" : "2", "nombre" : "Cali" }, { "id" : "3", "nombre" : "Medellin" } ];

Es posible crear una función que adicione una ciudad a ese arreglo usando el método push del arreglo.

function addCity ( city ) { // agrega la ciudad cities.push( city ); };

Note que la función no hace ninguna validación sobre los datos de la entrada.

Igualmente, es posible crear una función que modifique un elemento de la colección.

function modifyCity( city ) { // busca la ciudad var posicion = -1; for ( var i = 0; i < cities.length; i++ ) { if ( cities[i].id == city.id ) { posicion = i; break; } } // lo encontró ? if ( posicion != -1) { // elimina el elemento en esa posición cities[posicion] = city; } }

Y también es posible crear una función que elimine un elemento de la colección

function removeCity( city ) { // busca la ciudad var posicion = -1; for ( var i = 0; i < cities.length; i++ ) { if ( cities[i].id == city.id ) { posicion = i; break; } } console.log(posicion); // lo encontró ? if ( posicion != -1) { // elimina el elemento en esa posición cities.splice(posicion, 1); } }

Actividades

  • ¿Cómo crear una función que busque una ciudad por id y retorne la posición del arreglo?
  • ¿Cómo modificar las funciones de modifyCity y removeCity para usar esta función que se acaba de crear?

results matching ""

    No results matching ""