Javascript Básico

Funciones variables tipo array

Los arreglos o arrays son un tipo de variable que ofrece una gran cantidad de propiedades que ayudan a manipular la información que se almacenan en ellos, recordemos que en los arrays podemos guardar diferentes tipo de datos.

Es posible guardar un array dentro de otro creando una matriz de datos o un array múltiple.

var miArray = [1, 2, ["a", "b", "c"], 3, 4];
//Imprime - Mostrando la letra a: a
console.log("Mostrando la letra a: " + miArray[2][0]);

Algunas propiedades y/o funciones que tienen los arrays son:

  • length
  • concat()
  • indexOf()
  • join()
  • splice()
  • pop()
  • shift()
  • push()
  • unshift()
  • reverse()
  • sort()

length

Retorna el tamaño de un array

var arrayUno = [1,2,3,4,5];
var tamano = arrayUno.length;
//Imprime - Tamaño es: 5
console.log("Tamaño es: " + tamano);

concat()

Concatena dos Arrays.

var arrayUno = [1,2,3,4,5];
var arrayDos = ["a", "b", "c", "d"];
var combina = arrayUno.concat(arrayDos);
//Imprime - [1, 2, 3, 4, 5, "a", "b", "c", "d"]
console.log(combina);

indexOf()

Busca un elemento en el Array, dando la posición donde se encuentra, si no existe el elemento se devolverá un valor negativo (-1), recordemos que los arrays inician su conteo desde cero (0)

var frutas = ["MANZANA", "PERA", "MANDARINA", "FRESAS"];
//Imprime - La posición de PERA es: 1
console.log("La posición de PERA es: " + frutas.indexOf("PERA"));
//Imprime - La posición de DURAZNO es: -1
console.log("La posición de DURAZNO es: " + frutas.indexOf("DURAZNO"));

TIP


Si la palabra a buscar no se escribe exactamente como está guardada, en este caso en mayúscula no encontrará coincidencias, podría utilizarse la función toUpperCase() para convertir a mayúscula la búsqueda.

var frutas = ["MANZANA", "PERA", "MANDARINA", "FRESAS"];
//Imprime - FRESAS es: -1
//No encuentra coincidencia...
console.log("FRESAS es: " + frutas.indexOf("Fresas"));
//Imprime - FRESAS es: 3
//Encuentra coincidencia...
console.log("FRESAS es: " + frutas.indexOf("fresas".toUpperCase()));

join()

Une los elementos del array con un carácter de separación.

var frutas = ["MANZANA", "PERA", "MANDARINA", "FRESAS"];
var txtFrutas = frutas.join(",");
//Imprime - MANZANA,PERA,MANDARINA,FRESAS
console.log(txtFrutas);

splice(indice, número de elementos, item a adicionar)

Adiciona/Remueve elementos de un array y retorna los valores eliminados.

var frutas = ["Platano", "Naranja", "Manzana", "Mango"];
//No se elimina ningún elemento...
frutas.splice(2, 0, "Limón", "Pera");
/*
Imprime:
["Platano", "Naranja", "Limón", "Pera", "Manzana", "Mango"]
*/
console.log(frutas);

var frutas = ["Platano", "Naranja", "Manzana", "Mango"];
//Se elimina Manzana y se adiciona Limón, Pera
frutas.splice(2, 1, "Limón", "Pera");
/*
Imprime:
["Platano", "Naranja", "Limón", "Pera", "Mango"]
*/
console.log(frutas);

pop()

Elimina el último elemento del Array y muestra el valor que ha sido eliminado.

var arrayElimina = ["a", "b", "c", "d", "e", "f", "g", "h", "i"];
var eliminado = arrayElimina.pop();
//Imprime - Eliminado: i Queda: a,b,c,d,e,f,g,h
console.log("Eliminado: " + eliminado + " Queda: " + arrayElimina);

shift()

Elimina el primer elemento de un array.

var arrayElimina = ["a", "b", "c", "d", "e", "f", "g", "h", "i"];
var eliminado = arrayElimina.shift();
//Imprime - Eliminado: a Queda: b,c,d,e,f,g,h,i
console.log("Eliminado: " + eliminado + " Queda: " + arrayElimina);

TIP


Si se desea eliminar un elemento diferente al primero/último se puede utilizar la función splice(), entregando la posición del elemento, con un tamaño de uno y sin adicionar nuevos elementos.

var arrayElimina = ["a", "b", "c", "d", "e", "f", "g", "h", "i"];
//Se elimina la d que se encuentra en la posición 3
var eliminado = arrayElimina.splice(3, 1);
//Imprime - Eliminado: d Queda: a,b,c,e,f,g,h,i
console.log("Eliminado: " + eliminado + " Queda: " + arrayElimina);

push()

Adiciona un elemento al final del array.

var frutas = ["Platano", "Naranja", "Manzana", "Mango"];
frutas.push("Limón");
//Imprime: ["Platano", "Naranja", "Manzana", "Mango", "Limón"]
console.log(frutas);

TIP


También se puede adicionar un elemento al final de un array haciendo uso de la función length. El ejemplo anterior se puede escribir de la siguiente forma:

var frutas = ["Platano", "Naranja", "Manzana", "Mango"];
frutas[frutas.length - 1] = "Limón";
//Imprime: ["Platano", "Naranja", "Manzana", "Mango", "Limón"]
console.log(frutas);

unshift()

Adiciona un elemento al inicio de un array();

var frutas = ["Platano", "Naranja", "Manzana", "Mango"];
frutas.unshift("Limón");
//Imprime: ["Limón", "Platano", "Naranja", "Manzana", "Mango"]
console.log(frutas);

reverse()

Invierte el array.

var arrayUno = [1,2,3,4,5,6,7,8,9];
arrayUno.reverse();
//Imprime - [9, 8, 7, 6, 5, 4, 3, 2, 1]
console.log(arrayUno);

sort()

Permite ordenar un array, si no se especifica el tipo de ordenamiento, esté lo hará en orden lexicográfico

var nombres = ["Pedro", "Miguel", "Samuel", "Beto"];
//imprime ["Beto", "Miguel", "Pedro", "Samuel"]
nombres.sort();

Si se realiza la misma acción para los número y no se indica el tipo de orden, el resultado es el siguiente:

var numeros = [56, 23, 1, 5, 10, 43, 100];
//Imprime: [1, 10, 100, 23, 43, 5, 56]
numeros.sort();

Para que el orden se realice de forma adecuada, se debe hacer uso de una función anónima, la cual recibirá dos parámetros que evaluará, con el fin de determinar que número es menor que el otro y así realizar el ordenamiento correcto.

var numeros = [56, 23, 1, 5, 10, 43, 100];
//Imprime: [1, 5, 10, 23, 43, 56, 100]
numeros.sort(function(a, b) {
    return a - b;
});

Tip


En el caso que el array este compuesto por objetos, se deberá índicar el campo sobre el cual se hará el ordenamiento.

//Ordenar por primernombre...
var listadoPersonas = [
   {
      "identificacion":"234234",
      "primernombre":"Juan",
      "primerapellido":"Rojas",
      "email":"[email protected]",
      "fechanacimiento":"2003-06-10"
   },
   {
      "identificacion":"11276",
      "primernombre":"Jorge",
      "primerapellido":"Rubiano",
      "email":"[email protected]",
      "fechanacimiento":"1987-06-02"
   }
];

listadoPersonas.sort(function (a, b)
{
  if (a["primernombre"] > b["primernombre"])
  {
    return 1;
  }
  if (a["primernombre"] < b["primernombre"])
  {
    return -1;
  }
  //Son iguales...
  return 0;
});