Array Unique: eliminar valores duplicados de un array en Javascript

En Javascript, como en todos los lenguajes de programación, es frecuente trabajar con arrays donde a veces los valores se van rellenando de forma dinámica. En estos casos, es probable que terminemos manejando matrices con múltiples datos duplicados que conviene limpiar antes de operar con ellas eficientemente.

Desgraciadamente, Javascript no tiene un método nativo para optimizar este tipo de objetos por lo que tenemos que crearlo nosotros mismos.

En una línea similar a la del último post ‘Javascript Extremo: cómo salvar algunos bytes en nuestro código‘, @webreflection ha conseguido reducir una de las muchas formas de conseguir esta funcionalidad a sólo 121 bytes. Un código que puede considerarse perfecto por el uso que hace del lenguaje y que no he podido resistirme a compartir aquí:

Array.prototype.unique=function(a){
  return function(){return this.filter(a)}}(function(a,b,c){return c.indexOf(a,b+1)<0
});

Y ahí lo tenemos. Un nuevo método que funciona exactamente como se espera:

var myArr = [ 1, 2, 3, 'foo', 'bar', 'Hello World', 2, 3, 'bar', 1, 4, 5];
console.log( myArr.unique() ); // ["foo", "Hello World", 2, 3, "bar", 1, 4, 5]

El resultado que obtenemos es un array cuyos valores duplicados han sido eliminados. Rápido, limpio y preciso.

Códigos como este son los que me reafirman en eso que llevo defendiendo desde hace años: que los lenguajes de programación no son buenos o malos por si mismos, sino que es el uso que hacemos de ellos lo que determinan un buen o mal resultado.

Dentro de Javascript | Etiquetas: , , , | 6 Comentarios

Javascript Extremo: cómo salvar algunos bytes en nuestro código

Introduccion

Hay ocasiones en las que por diversos motivos, tenemos que reducir al máximo nuestros scripts. Puede tratarse por ejemplo de una competición del tipo JS1k donde nuestros códigos tienen que ocupar menos de esos insignifacntes 1024 bites; también puede tratarse de un último esfuerzo por aligerar los tiempos de carga al máximo en un entorno crítico…

Durante este tipo de prácticas, la refactorización es esencial y durante la misma, podemos tratar de implementar algunas de las soluciones más radicales en ahorro de espacio que veremos a continuación. Cabe decir que estas técnicas no son demasiado recomendables en el mundo real por esa capa de dificultad extra que añaden al código tanto a nivel de legibilidad como mantenimiento, pero no dejan de ser curiosidades de este lenguaje a las que podemos recurrir cuando el único objetivo es obtener el código más corto posible…

Pasemos a ver algunas de estas técnicas. Seguir Leyendo…

Dentro de Javascript | Etiquetas: , , , , , , , , | 4 Comentarios

La optimización de cola en Javascript y porqué es necesaria

Introducción

Paul Barry nos explicaba recientemente cómo introducir el concepto de optimización de cola en Javascript para construir funciones recursivas sostenibles, un tipo de optimización necesaria cuando se desarrollan aplicaciones con una alta carga de cálculo matemático.

En este post, revisaremos sus planteamientos para comenzar a utilizarlos en nuestros propias aplicaciones.

La optimización de cola

La optimización de cola (también conocida como Recursión de Cola) es una técnica utilizada a menudo en lenguajes de programación funcional para facilitar el uso de la recursión evitando así los bucles imperativos para los cálculos durante las iteraciones. Seguir Leyendo…

Dentro de Javascript | Etiquetas: , , | 8 Comentarios

Liberada la nueva versión de la Biblioteca: OpenLibra

Dos meses después del lanzamiento en este blog de la Biblioteca Libre, ve hoy la luz la versión 2.0 del proyecto: OpenLibra.


Pincha en la imagen para acceder a OpenLibra

Como se adelantó durante la promoción, el gran número de libros que se estaban añadiendo diariamente, hacían poco sostenible el diseño anterior y exigían reformas integrales. Seguir Leyendo…

Dentro de Sin categoría | 2 Comentarios

Estudiando la funcion with() en Javascript y el porqué no hay que usarla

Introducción

El comando with es uno de los más discutidos del lenguaje Javascript. Para la mayoría de desarrolladores, su uso se considera una mala práctica; sin embargo, para aquellos que vienen de otros lenguajes, resulta una estructura natural con la que se sienten cómodos y de ahí que nos la encontremos frecuentemente en los repositorios públicos.

Veamos cómo funciona esta función y algunos casos de uso frecuentes.

La función with

La sentencia with establece el objeto por defecto [default] para un conjunto de sentencias. JavaScript busca por cualesquiera de los nombres no calificados dentro de un conjunto de sentencias para determinar si los nombres son propiedades del objeto por defecto.

Una sentencia with se parece a lo siguiente: Seguir Leyendo…

Dentro de Javascript | Etiquetas: , , , , , , | 3 Comentarios
Página 10 de 32Primera...89101112...2030...Última
Licencia Creative Commons 3.0

®Copyright 2011. Cotenido web bajo licencia Creative Commons 3.0

Códigos bajo licencias MIT y GPL. Ver página de licencias para más información