Tips útiles de javascript para mejorar tu código

Tips de javascript

1. Detectando las propiedades de un objeto

Esto es muy útil para saber si un atributo del objeto existe y evitar obtener atributos ó funciones no definidos, es decir que te devuelva undefined.

var myObjeto = {
nombre: 'Javier',
apellidoPaterno: 'Ruiz',
apellidoMaterno: 'Vázquez'
};
if ('nombre' in myObjeto) {
console.log('Mi nombre es: ', myObjeto.nombre);
} else {
console.log('No existe la propiedad nombre en el objeto');
}

2. Truncamiento de una matriz

Se usa para bloquear el tamaño de una matriz, es decir si tienes una matriz de 10 elementos y solo quieres mostrar por decir 5 elementos, se puede bloquear para que el tamaño de la matriz sea más pequeño.

var miMatriz = [1,2,3,4,5,6,7,8,9,0];
console.log('Matriz: ', miMatriz);
miMatriz.length = 5;
console.log('Matriz: ', miMatriz);

3. Fusión de matrices

Si necesitas fusionar dos matrices, una manera sencilla de hacerlo es:

var miMatriz = [1,2,3,4,5];
var miOtraMatriz = [6,7,8,9,0];
var fusionMatriz = miMatriz.concat(miOtraMatriz);
console.log('Fusión: ', fusionMatriz);

Esto no es muy recomendable ya que se usa mucha memoria si las matrices son de gran tamaño, para este caso utilizamos:

var miMatriz = [1,2,3,4,5];
var miOtraMatriz = [6,7,8,9,0];
miMatriz.push.apply(miMatriz, miOtraMatriz);
console.log('Fusión: ', miMatriz);

4. Mezclar elementos de una matriz

A veces ocupamos mezclar elementos, normalmente buscamos ordenarlos, pero hay casos en los que la necesidad es desacomodarlos.

var miMatriz = [1,2,3,4,5,6,7,8,9,0];
var miMatrizDesordenada = miMatriz.sort(function() {
return Math.random() - 0.5;
});
console.log('Matriz desordenada: ', miMatrizDesordenada);

5. Convertir NodeList a un arreglo

El NodeList es un arreglo de elementos del DOM por ejemplo, si quisieras obtener todos los elementos que tengan el tag div:

document.querySelectorAll('div');

Y si por decir quisieras hacer un mapeo “.map()”, un filtrado “.filter()” ó un ordenado “.sort()” de los elementos obtendrías lo siguiente:

document.querySelectorAll('div').sort();
VM4787:1 Uncaught TypeError: document.querySelectorAll(...).sort is not a function(…)

Para poder utilizar estas funciones hay una manera muy sencilla:

var divs = document.querySelectorAll('div');
var miMatriz = [].slice.call(divs);

Otra manera de realizar la misma función es:

var divs = document.querySelectorAll('div');
var miMatriz = Array.from(divs);

6. Obteniendo últimos elementos de una matriz

En ocaciones necesitamos obtener determinados número de nuestro de atrás hacia adelante, esto lo podemos lograr con la siguiente función.

var miMatriz = [1,2,3,4,5,6,7,8,9,0];
// Aqui nos devolverá [0]
console.log(miMatriz.slice(-1));
// Aqui nos devolverá [6,7,8,9,0]
console.log(miMatriz.slice(-5));

7. Evitar elementos repetidos en una matriz

Usualmente también nos encontramos en momentos en que es necesario sacar los valores repetidos para solo quedarnos con los valores necesarios, para esto podemos utilizar la función filter() e indexOf().

var miMatriz = [1,2,3,1,2,3,4,4,1];
var miMatrizSinRepetidos = miMatriz.filter(function(item, pos) {
return miMatriz.indexOf(item) == pos;
});
console.log('Matriz nueva: ', miMatrizSinRepetidos);

También pueden entrar a jstips para otras cosas útiles.