Matrices en JavaScript

Importantes detalles sobre matrices en JavaScript

  1. Definición y uso básico de matrices (se numeran desde 0). Ej.: var arr = new Array() o “new Array(3)” o “[]” (si ponemos [3] es matriz con 1 elemento con valor 3); arr[0] = “coche”;
    arr.length – longitud de matriz. No solo leemos este valor, podemos escribir lo para redimencionar y nuevos elementos estaran sin definir. Cuidado no eliminar asi elementos.
    Semi foreach en JS:
    for(var coche in coches){
    alert(coches(coche));
    }
  2. Inicialización de matrices y matrices multidimensionales.
    var coches = new Array(“1″,”2″,”AD”); var coches = [“1″,”2″,”AD”]; var distintos = [“cadena”, 5, true];
    Multidimencionales: var dim1 = [1,2,3,4,5]; var dim2 = [1,2,3,4,5]; var dim2D = [dim1,dim2]; alert(dim2D[0][0]);
    Matrices escalonadas son las que contienen dentro matrices de diferentes dimenciones.
  3. Generar un alfabeto.
    Parseamos a numero: parseInt(“algo”);
    Comprobar si no es numero: if(isNaN(variable));
    Pide inputbox al usuario: prompt(“Pon numero”, “Valor defecto 26”);
    Cuando mostramos por pantalla matrices como string, separa valores con comas.
  4. Matrices asociativas: no los implemente realmente este tipo de matrices. Realmente es definicion de propiedades
    coches[“Alemanes”] = [“Audi”, “Volkswagen”, “Porsche”];
    alert(coches[“Alemanes”]) o por acceso a propiedad alert(coches.Alemanes);
  5. Manipulación de elementos de matrices.
    Unir en string usando elemento: var mEjemplo = [0,1,2,3,4,5]; mEjemplo.join(“–“); // Por defecto comas.
    Unir matrices: var mat1 = [1,2,3]; var mat2 = [“A”,”B”,”C”,”D”]; var nuevaMatriz = mat1.concat(mat2);
    Subconjunto de matrices (extracción): var subConjunto = sourceMatriz.slice(2,5); // Elementos del 2 al 5
    Matrices se pasan por referencia porque son objetos.
    Quitar elementos de matriz: matriz.splice(3,2) // Retira desde elemento 3, 2 elementos. Y resto de elementos se mueven para que no quedan huecos.
    Colas: var matriz = [1,2,3,4]; matriz.unshift(5,6) – meter al principio de cola; matriz.shift() – quita primer elemento.
    Pilas: var matriz = [1,2,3,4]; matriz.push(5) – meter en matriz; matriz.pop() – quita de matriz.
    Ordenacion:
    mat.reverse() (hace vuelta a elementos de matriz cambiando orden original de matriz);
    mat.slice().reverse() (copia matriz y invierte copia);
    mat.sort() (ordena la matriz como si fueran cadenas basando en valores unicode);
    Ordenacion especifica: var frutas = [“Naranjas”, “Pera”, “Melocoton”]; function ord(f1,f2){ return 0/1/2; frutas.sort(ord);
    Busquedas:
    mat.indexOf(“cadena buscada”) -> devuelve posición de primera ocurrencia de la cadena en la matriz.
    mat.indexOf(“cadena buscada”, 4) -> devuelve posición de primera ocurrencia de la cadena en la matriz despues de posición 4.
    lastIndexOf(“cadena buscada”) -> devuelve posición de ultima ocurrencia de la cadena en la matriz.
    Si se devuelve -1 -> no lo encuentra.
    Shims – funciones que sustituyen funciones si las primeras no existen.
    Procesamiento de elementos:
    Filtrar y extraer los que cumplen determinada condicion: var pares=mat.filter(esPar); function esPar(n){return n%2==0;}
    Indica si alguno cumple: mat.some(esPar);
    Indica si todos cumplen: mat.every(esPar);
    Aplica funcion a todos elementos en su retorno sin modificar matriz original: mat.map(elDoble); function elDoble(n){return n*2;}
    Map / Reduce para muchos datos.
    Aplicar funcion sin modificaciones: mat.forEach(mostrar); mostrar(n, indice, referenciaMatriz){alert(“Indice:”+indice+”,valor:”+n);