Métodos Útiles para Extender el Objeto Array en Javascript

El dia de ayer frogx3 se topo con un ligero problema en javascript con el objeto array ya que necesitaba obtener la posición de un elemento que coincida con un valor proporcionado. Con frameworks como Mootools, Protototype, jQuery (supongo) esto no habria sido problema pero ¿qué pasa cuando no puedes incluir ninguno de esos frameworks? pues tenemos la ventaja en Javascript que podemos añadirle eventos a los objetos nativos de javascript utilizando Prototype (Ojo no el framework) por lo que podriamos definir nuestros propios métodos de una manera sencilla. A continuación les presento una lista de algunos métodos útiles para extender el objeto Array en Javascript:

indexOf

Este método te devuelve la posición de un elemento dentro de un arreglo. Para agregarle este método al objeto array hacemos lo siguiente:

  1. // Array.indexOf( value, begin, strict ) – Regresa el indice del primer elemento que coincida con el valor especificado
  2. if (!Array.prototype.indexOf)
  3. {
  4. Array.prototype.indexOf = function( v, b, s ) {
  5. for( var i = +b || 0, l = this.length; i < l; i++ ) {
  6. if( this[i]===v || s && this[i]==v ) { return i; }
  7. }
  8. return -1;
  9. };
  10. }

Podemos probarlo utilizando el siguiente código:

  1. var arreglo = new Array("a","b","c","d");
  2.  
  3. var posicion = arreglo.indexOf("d");
  4.  
  5. alert(posicion);

lastIndexOf

Devuelve la posición del último elemento encontrado en un arreglo dependiendo de determinado valor.

  1. if (!Array.prototype.lastIndexOf)
  2. {
  3. Array.prototype.lastIndexOf = function(elt /*, from*/)
  4. {
  5. var len = this.length;
  6.  
  7. var from = Number(arguments[1]);
  8. if (isNaN(from))
  9. {
  10. from = len - 1;
  11. }
  12. else
  13. {
  14. from = (from < 0)
  15. ? Math.ceil(from)
  16. : Math.floor(from);
  17. if (from < 0)
  18. from += len;
  19. else if (from  >= len)
  20. from = len - 1;
  21. }
  22.  
  23. for (; from  > ; -1; from)
  24. {
  25. if (from in this && this[from] === elt)
  26. return from;
  27. }
  28. return -1;
  29. };
  30. }

Ejemplo de uso:

  1. var arreglo = new Array("a","d","c","d");
  2.  
  3. var posicion = arreglo.lastIndexOf("d");
  4.  
  5. alert(posicion);

forEach

El forEach que nos permite aplicarle una función a cada elemento de un arreglo.

  1. if (!Array.prototype.forEach)
  2. {
  3. Array.prototype.forEach = function(fun /*, thisp*/)
  4. {
  5. var len = this.length;
  6. if (typeof fun != "function")
  7. throw new TypeError();
  8.  
  9. var thisp = arguments[1];
  10. for (var i = 0; i < len; i++)
  11. {
  12. if (i in this)
  13. fun.call(thisp, this[i], i, this);
  14. }
  15. };
  16. }

Ejemplo de uso:

  1. var arreglo = new Array("a","b","c","d");
  2.  
  3. var posicion = arreglo.indexOf("d");
  4.  
  5. arreglo.forEach(function(j){alert(j);});

Unique

Elimina valores repetidos de un arreglo. este método utiliza el indexOf por lo que para utilizar previamente tenemos que definir el método indexOf

  1. Array.prototype.unique = function( b ) {
  2. var a = [], i, l = this.length;
  3. for( i=0; i<l; i++ ) {
  4. if( a.indexOf( this[i], 0, b ) < 0 ) { a.push( this[i] ); }
  5. }
  6. return a;
  7. };

Ejemplo de uso:

  1. var arreglo = new Array("a","d","c","d");
  2. var arreglo2 = arreglo.unique();
  3. alert(arreglo2);

Random

Obtener un valor aleatorio de un arreglo.

  1. // Array.random( rango) – Regresa un valor aleatorio del arreglo, se puede especificar un valor máximo de posicion.
  2. Array.prototype.random = function( r ) {
  3. var i = 0, l = this.length;
  4. if( !r ) { r = this.length; }
  5. else if( r > 0 ) { r = r % l; }
  6. else { i = r; r = l + r % l; }
  7. return this[ Math.floor( r * Math.random() - i ) ];
  8. };

Ejemplo de uso:

  1. var arreglo = new Array("a","b","c","d");
  2. alert(arreglo.random());

Pueden ver otros métodos aquí

Core Javascript 1.5 Reference:Object Array

Compartelo con tus amigos:

Compartelo!   

¿Te pareció interesante la nota?, registrate a nuestro Feed para que estes al dia con las últimas notas que publicamos en WebAdictos, tambien te invitamos a explorar nuestros archivos tal vez encuentres notas y recursos que te sean de utilidad.

Si lo prefieres puedes utilizar el botón de post aleatorio para ir saltando entre nuestros contenidos.
Gracias por visitarnos.

6 Comentarios para “Métodos Útiles para Extender el Objeto Array en Javascript”

« Antiguos
Nuevos »
  1. Métodos Útiles para Extender el Objeto Array en Javascript - Noticias externas

    [...] Lista de algunos métodos útiles para extender el objeto Array de Javascript» noticia original [...]

  2. Actualidad, Entretenimiento y Humor » Métodos Útiles para Extender el Objeto Array en Javascript

    [...] (more…) [...]

  3. Pablo

    Use su función Array.indexOf y cuando creo un arreglo vacío (arr[]) en IE 6.0 me crea un objeto: arr['indexOf'] = declaración de la función. ¿Sabe por qué eso?

  4. Andres

    Utilice la funcion de Unique pero no me funciona en internet exlporer la siguiente linea
    if( a.indexOf( this[i], 0, b ) < 0 )
    Alguien sabe como lo puedo corregir ??
    Gracias

  5. Andres

    A quien le pueda interesar, ya encontre la solucion al comentario anterior, aqui esta:
    if(!Array.indexOf){
    Array.prototype.indexOf = function(obj){
    for(var i=0; i<this.length; i++){
    if(this[i]==obj){
    return i;
    }
    }
    return -1;
    }
    }
    Saludos !!!

Leave a Reply

Tu banner aquí

Recibir Artículos Por Email