Array

  • Enlace amigable (slug) de la revisión: Referencia_de_JavaScript_1.5/Objetos_globales/Array
  • Título de la revisión: Array
  • Id de la revisión: 141584
  • Creada:
  • Creador: Sheppy
  • ¿Es la revisión actual? No
  • Comentario /* Creando un Array */

Contenido de la revisión

Sumario

Objeto Núcleo

Permite trabajar con arreglos.

Véase también: Novedades en JavaScript 1.6#Extras de Arreglos y Novedades en JavaScript 1.7#Comprensión de arrays

Se crea con

El constructor del objeto Array:

new Array(longitudArreglo)
new Array(elemento0, elemento1, ..., elementoN)

Un arreglo literal:

[elemento0, elemento1, ..., elementoN]

Parámetros

longitudArreglo 
Es la longitud inicial del arreglo. Puede acceder a este valor utilizando la propiedad de longitud {{mediawiki.external('length')}}. Si el valor especificado no es un número, un arreglo de longitud 1 es creado, con el primer elemento teniendo el valor especificado. La longitud máxima permitida para un arreglo es de 4,294,967,295.
elementoN 
Una lista de valores para los elementos del arreglo. Cuando es especificada de esta manera, el arreglo es iniciado con los valores especificados como sus elementos y la propiedad de longitud del arreglo es configurada al número de argumentos.

Descripción

Un arreglo es un conjunto ordenado de valores asociados con un único nombre de variable. Nótese que usted no debería utilizarlo como un arrego asociativo, utilice en su lugar un Objeto.

El siguiente ejemplo crea un objeto Array con un arreglo literal, el arreglo bebidas contiene tres elementos y posee una longitud de tres:

bebidas = ["Café", "Té", "Chocolate"];

Puede contruir un arreglo denso de dos o más elementos comenzando con el índice 0 si define valores iniciales para todos los elementos. Un arreglo denso es aquel en el cual cada elemento tiene un valor. El siguiente código crea un arreglo denso con tres elementos:

miArreglo = new Array("Hola", miVariable, 3.14159);

Indexando un array

Indexe un arreglo por sus números ordinales. Por ejemplo, se asume que define el siguiente arreglo:

miArreglo = new Array("Viento", "Lluvia", "Fuego");

Puede referirse a los elementos de esta forma:

  • miArreglo{{mediawiki.external(0)}} es el primer elemento
  • miArreglo{{mediawiki.external(1)}} es el segundo elemento
  • miArreglo{{mediawiki.external(2)}} es el tercer elemento

Especificando un sólo parámetro

Cuando especifica un único parámetro numérico con el constructor de un Array, especifica la longitud inicial del arreglo. El siguiente código crea un arreglo de cinco elementos:

Métodoconstructor = new Array(5);

El comportamiento del constructor de un Array es depende de si el único parámetro es un número.

  • Si el valor especificado es un número, el constructor convierte el número a un tipo entero de 32-bits sin signo {{mediawiki.external('unsigned')}} y genera un arreglo con la propiedad longitud (tamaño del arreglo) convirtiéndola en entero {{mediawiki.external('integer')}}. El arreglo inicialmente no contiene elementos, aún cuando se piense que se puede tener un valor de longitud distinto de cero.
  • Si el valor especificado no es un número, un arreglo de longitud es creado, con el primer elemento teniendo el valor especificado.

El siguiente código crea un arreglo de longitud 25, luego asigna los valores para los tres primeros elementos:

Tipomúsica = new Array(25);
Tipomúsica[0] = "R&B";
Tipomúsica[1] = "Blues";
Tipomúsica[2] = "Jazz";

Incrementar la longitud de un arreglo indirectamente

La longitud de un arreglo se incrementa si se asigna un valor a un elemento mayor que la longitud actual de un arreglo. El siguiente código crea un arrego de longitud cero 0, luego asigna un valor al elemento 99. Esto cambia la longitudo de un arreglo a 100 This changes the length of the array to 100.

colores = new Array();
colores[99] = "amarillopatito";

Creación de un arreglo utilizando el resultado de una coincidencia encontrada

El resultado de una coincidencia {{mediawiki.external('match')}} entre una expresión regular y una cadena puede crear un arreglo. Este arreglo posee propiedades y elementos que proveen de información acerca de la coincidencia. Un arreglo es el valor retornado por la ejecución de una expresión regular {{mediawiki.external('RegExp.exec')}}, cadena coincidente {{mediawiki.external('String.match')}} y cadena remplazante {{mediawiki.external('String.replace')}}. Para explicar como ayudan estas propiedades y elementos, véase el siguiente ejemplo y refiérase a la table a continuación:

// Coincidencia de una d seguida de uno o más b seguida de una d
// Recordar las coincidencias de b y la siguiente d
// Ignorar el resto del caso

miexpresiónRegular = /d(b+)(d)/i;
miArreglo = miexpresiónRegular.exec("cdbBdbsbz");

Las propiedades y elementos retornados desde una coincidencia son las siguientes:

Propiedad/Elemento Descripción Ejemplo
input Una propiedad sólo de lectura que refleja la cadena original con la expresión regular que fue coincidente. cdbBdbsbz
index Una propiedad sólo de lectura que está basada en cero su índice de las cadenas coincidentes. 1
{{mediawiki.external(0)}} Un elemento sólo de lectura que especifica los últimos caracteres coincidentes. dbBd
{{mediawiki.external(1)}}, ...{{mediawiki.external('n')}} Elemento sólo de lectura que especifica las cadenas coincidentes parentizadas, si son incluidas en la expresión regular. El número de las posibles cadenas parentizadas es ilimitado. {{mediawiki.external(1)}}: bB
{{mediawiki.external(2)}}: d

Propiedades

constructor
Especifica la función que crea un prototipo de Objeto.
index
Para un arreglo creado por una coincidencia de una expresión regular, el índice basado en cero de una coindencia en una cadena.
input
Para un arreglo de coincidencias creado por una expresión regular, refleja la cadena original con la coincidencias encontradas por la expresión regular.
length
Refleja el número de elementos en un arreglo.
prototype
Permite la adición de propiedades a todos los objetos.

Métodos

Métodos Transformadores [Mutator]

Estos métodos modifican el arreglo:

pop
Remueve el último elemento de un arreglo y retorna este elemento.
push
Aañade uno o más elementos al final de un arreglo y retorna la nueva longitud de un arreglo.
reverse
Reversa el orden de los elementos de un arreglo -- el primero llega a ser el último y el último llega aser el primero.
shift
Remueve el primer elemento de un arreglo y retorna este elemento.
sort
Ordena los elementos de un arreglo.
splice
Añade y/o remueve elemtnos de un arreglo.
unshift
Añade uno o más elementos al comienzo de un arreglo y retorna la nueva longitud del arreglo.

Métodos de acceso [Accessor methods]

need a better name...

Estos métodos no modifican un arreglo y retornan alguna representación del arreglo.

concat
Retorna un nuevo arreglo que comprende este arreglo unido con otro arreglo(s) y/o valor(es).
join
Une todos los elementos de un arreglo en una cadena.
slice
Extrae una sección de un arreglo y retorna un nuevo arreglo.
toSource
Retorna un arreglo literal representando el arreglo especificado; Puede utilizar este valor para crea un nuevo arreglo. Sobre escribe al método Object.toSource.
toString
Retorna una cadena representando el arreglo y sus elementos. Sobre escribe el método Object.toString.
valueOf
Retorna el valor primitivo de un arreglo. Sobre escribe el método {{mediawiki.external('Referencia de JavaScript 1.5:Objetos globales:Object#valueOf|Object.valueOf')}}].
Los siguientes métodos han sido introducidos en JavaScript 1.6, para más detalles Novedades en JavaScript 1.6.
indexOf
Retorna el primer (el menor) índice de un elemento dentro de un arreglo igual al valor especificado, o -1 si ninguno es encontrado.
lastIndexOf
Retorna el último (el mayor) índice de un elemento dentro de un arreglo igual al valor especificado, o -1 si ninguno es encontrado.

Métodos de repetición

Los siguientes métodos han sido introducidos en JavaScript 1.6, para más detalles Novedades en JavaScript 1.6.

Varios métodos toman como argumentos funciones que son reinvocadas mientras se procesa el arreglo. Cuando estos métodos son invocados, la longitud length del arreglo se muestrea y cualquier elemento añadido más allá de esta longitud desde el interior de la reinvocación no es visitado. Otros cambios al arreglo (configuración del un valor o la eliminación de un elemento) puede afectar los resultados de la operacion si el método visita luego el elemento cambiado. el comportamiento específico de estos métodos en tales casos no está siempe bien definido y no debería confiarse sobre ello.

filter
Crea un nuevo arreglo con todos los elementos de este arreglo para los cuales la funcion de filtrado provista retorna verdadero {{mediawiki.external('true')}}.
forEach
Invoca a una funcion por cada elemento en el arreglo.
every
Retorna verdadero{{mediawiki.external('true')}} si cada elemento en este arreglo satisface la función de pruebas {{mediawiki.external('testing')}} provista.
map
Crea un nuevo arreglo con los resultados de la invocación de una funcion provista sobre cda elemento en este arreglo.
some
Retorna verdadero {{mediawiki.external('true')}} si al menos un elemento en este arreglo satisface la función de pruebas provista.

Métodos en general

Muchos métodos para el objeto Array de JavaScript están diselado para ser aplicados generalmente a todos los objetos los cuales "se asemejan" a los arreglos. Esto es, ellos pueden se utilizados sobre cualquier objeto los cuales tien una propiedad de longitud length y los cuales pueden ser útiles para ser accesados utilizando nombres de propiedades numéricas (tal como con la indexación array{{mediawiki.external(5)}}).

POR HACER: dar ejemplos con Array.prototype.forEach.call y añadir el método a un objeto como JavaArray o String.

Algunos métodos, tales como join, únicamente leen la longitud length y las propiedades numéricas del objeto son invocados. Otros, como reverse, requieren que las propiedades numéricas del objeto y la longitud length sean mutables; estos métodos pueden sin embargo no ser invocados sobre objetos como String, los cuales no permiten que su propiedad length o propiedades numéricas sintetizadas sean configuradas.

Los métodos que trabajan sobre cualquier arreglo como objeto y no necesitan alterar las propiedades numéricas o la longitud length son:

Los métodos que alteran las propiedades numéricas o la longitud length de un objeto son invocados como:

Este ejemplo muestra como utilizar map sobre un objeto string para obtener un arreglo de bytes codificados en representación de valores de caracteres ASCII:

var a = Array.prototype.map.call("Hello World", 
                                 function(x) { return x.charCodeAt(0); })
// y ahora igual a [72,101,108,108,111,32,87,111,114,108,100]

Ejemplos

Creando un Arreglo

el siguiente ejemplo crea un arreglo, msgArray, con una longitud de 0, luego asigna valores para msgArray{{mediawiki.external(0)}} y msgArray{{mediawiki.external(99)}}, cambiando la longitud del arreglo a 100.

var msgArray = new Array();
msgArray[0] = "Hola";
msgArray[99] = "mundo";
// La sentencia siguiene es verdadera,
// debido al elemento msgArray[99] definido.
if (msgArray.length == 100)
   myVar = "La longitud es 100.";

Creating a Two-dimensional Array

The following creates a two-dimensional array and assigns the results to myVar.

var myVar = "Multidimensional array test; ";
var nb = 4;
var a = new Array(nb);
for (var i = 0; i < nb; i++) {
   a[i] = new Array(nb);
   for (var j = 0; j < nb; j++) {
      a[i][j] = "[" + i + "," + j + "]";
   }
}
for (var i = 0; i < nb; i++) {
   var str = "Row " + i + ":";
   for (var j = 0; j < nb; j++) {
      str += a[i][j];
   }
   myVar += str + "; ";
}

The following string is assigned to myVar (line breaks are used here for readability):

Multidimensional array test;
Row 0: [0,0][0,1][0,2][0,3];
Row 1: [1,0][1,1][1,2][1,3];
Row 2: [2,0][2,1][2,2][2,3];
Row 3: [3,0][3,1][3,2][3,3];

Also try with nb = 8 and see it expand.

{{template.AnteriorSiguiente("Referencia de JavaScript 1.5:Objetos globales", "Referencia de JavaScript 1.5:Objetos globales:Boolean")}}

{{ wiki.languages( { "en": "en/Core_JavaScript_1.5_Reference/Global_Objects/Array", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Objets_globaux/Array", "ja": "ja/Core_JavaScript_1.5_Reference/Global_Objects/Array", "pl": "pl/Dokumentacja_j\u0119zyka_JavaScript_1.5/Obiekty/Array" } ) }}

Fuente de la revisión

<p>
</p>
<h3 name="Sumario"> Sumario</h3>
<p><b>Objeto Núcleo</b>
</p><p>Permite trabajar con arreglos.
</p><p>Véase también: <a href="es/Novedades_en_JavaScript_1.6#Extras_de_Arreglos">Novedades en JavaScript 1.6#Extras de Arreglos</a> y <a href="es/Novedades_en_JavaScript_1.7#Comprensi.C3.B3n_de_arrays">Novedades en JavaScript 1.7#Comprensión de arrays</a>
</p>
<h3 name="Se_crea_con"> Se crea con </h3>
<p>El constructor del objeto <code>Array</code>:
</p>
<pre class="eval">new Array(<i>longitudArreglo</i>)
new Array(<i>elemento0</i>, <i>elemento1</i>, ..., <i>elementoN</i>)
</pre>
<p>Un arreglo literal:
</p>
<pre class="eval">[<i>elemento0</i>, <i>elemento1</i>, ..., <i>elementoN</i>]
</pre>
<h3 name="Par.C3.A1metros"> Parámetros </h3>
<dl><dt> <code>longitudArreglo</code> </dt><dd> Es la longitud inicial del arreglo. Puede acceder a este valor utilizando la propiedad de longitud {{mediawiki.external('length')}}. Si el valor especificado no es un número, un arreglo de longitud 1 es creado, con el primer elemento teniendo el valor especificado. La longitud máxima permitida para un arreglo es de 4,294,967,295.
</dd></dl>
<dl><dt> <code>elemento<i>N</i></code> </dt><dd> Una lista de valores para los elementos del arreglo. Cuando es especificada de esta manera, el arreglo es iniciado con los valores especificados como sus elementos y la propiedad de longitud del arreglo es configurada al número de argumentos.
</dd></dl>
<h3 name="Descripci.C3.B3n"> Descripción </h3>
<p>Un arreglo es un conjunto ordenado de valores asociados con un único nombre de variable. Nótese que usted <a class="external" href="http://www.andrewdupont.net/2006/05/18/javascript-associative-arrays-considered-harmful/">no debería utilizarlo como un arrego asociativo</a>, utilice en su lugar un <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Object">Objeto</a>.
</p><p>El siguiente ejemplo crea un objeto Array con un arreglo literal, el arreglo bebidas contiene tres elementos y posee una longitud de tres:
</p>
<pre class="eval">bebidas = ["Café", "Té", "Chocolate"];
</pre>
<p>Puede contruir un arreglo denso de dos o más elementos comenzando con el índice 0 si define valores iniciales para todos los elementos. Un arreglo denso es aquel en el cual cada elemento tiene un valor. El siguiente código crea un arreglo denso con tres elementos:
</p>
<pre class="eval">miArreglo = new Array("Hola", miVariable, 3.14159);
</pre>
<h4 name="Indexando_un_array"> Indexando un array </h4>
<p>Indexe un arreglo por sus números ordinales. Por ejemplo, se asume que define el siguiente arreglo:
</p>
<pre class="eval">miArreglo = new Array("Viento", "Lluvia", "Fuego");
</pre>
<p>Puede referirse a los elementos de esta forma:
</p>
<ul><li> <code>miArreglo{{mediawiki.external(0)}}</code> es el primer elemento
</li><li> <code>miArreglo{{mediawiki.external(1)}}</code> es el segundo elemento
</li><li> <code>miArreglo{{mediawiki.external(2)}}</code> es el tercer elemento
</li></ul>
<h4 name="Especificando_un_s.C3.B3lo_par.C3.A1metro"> Especificando un sólo parámetro </h4>
<p>Cuando especifica un único parámetro numérico con el constructor de un <code>Array</code>, especifica la longitud inicial del arreglo. El siguiente código crea un arreglo de cinco elementos:
</p>
<pre class="eval">Métodoconstructor = new Array(5);
</pre>
<p>El comportamiento del constructor de un <code>Array</code> es depende de si el único parámetro es un número.
</p>
<ul><li> Si el valor  especificado es un número, el constructor convierte el número a un tipo entero de 32-bits sin signo {{mediawiki.external('unsigned')}} y genera un arreglo con la propiedad longitud (tamaño del arreglo) convirtiéndola en entero {{mediawiki.external('integer')}}. El arreglo inicialmente no contiene elementos, aún cuando se piense que se puede tener un valor de longitud distinto de cero.
</li></ul>
<ul><li> Si el valor especificado no es un número, un arreglo de longitud es creado, con el primer elemento teniendo el valor especificado.
</li></ul>
<p>El siguiente código crea un arreglo de longitud 25, luego asigna los valores para los tres primeros elementos:
</p>
<pre class="eval">Tipomúsica = new Array(25);
Tipomúsica[0] = "R&amp;B";
Tipomúsica[1] = "Blues";
Tipomúsica[2] = "Jazz";
</pre>
<h4 name="Incrementar_la_longitud_de_un_arreglo_indirectamente"> Incrementar la longitud de un arreglo indirectamente </h4>
<p>La longitud de un arreglo se incrementa si se asigna un valor a un elemento mayor que la longitud actual de un arreglo. El siguiente código crea un arrego de longitud cero 0, luego asigna un valor al elemento 99. Esto cambia la longitudo de un arreglo a 100 This changes the length of the array to 100.
</p>
<pre class="eval">colores = new Array();
colores[99] = "amarillopatito";
</pre>
<h4 name="Creaci.C3.B3n_de_un_arreglo_utilizando_el_resultado_de_una_coincidencia_encontrada"> Creación de un arreglo utilizando el resultado de una coincidencia encontrada </h4>
<p>El resultado de una coincidencia {{mediawiki.external('match')}} entre una expresión regular y una cadena puede crear un arreglo. Este arreglo posee propiedades y elementos que proveen de información acerca de la coincidencia. Un arreglo es el valor retornado por la ejecución de una expresión regular {{mediawiki.external('RegExp.exec')}},  cadena coincidente {{mediawiki.external('String.match')}} y cadena remplazante {{mediawiki.external('String.replace')}}. Para explicar como ayudan estas propiedades y elementos, véase el siguiente ejemplo y refiérase a la table a continuación:
</p>
<pre class="eval">// Coincidencia de una d seguida de uno o más b seguida de una d
// Recordar las coincidencias de b y la siguiente d
// Ignorar el resto del caso

miexpresiónRegular = /d(b+)(d)/i;
miArreglo = miexpresiónRegular.exec("cdbBdbsbz");
</pre>
<p>Las propiedades y elementos retornados desde una coincidencia son las siguientes:
</p>
<table class="fullwidth-table">

<tbody><tr>
<td class="header">Propiedad/Elemento
</td><td class="header">Descripción
</td><td class="header">Ejemplo
</td></tr>

<tr>
<td><code>input</code>
</td><td>Una propiedad sólo de lectura que refleja la cadena original con la expresión regular que fue coincidente.
</td><td>cdbBdbsbz
</td></tr>

<tr>
<td><code>index</code>
</td><td>Una propiedad sólo de lectura que está basada en cero su índice de las cadenas coincidentes.
</td><td>1
</td></tr>

<tr>
<td><code>{{mediawiki.external(0)}}</code>
</td><td>Un elemento sólo de lectura que especifica los últimos caracteres coincidentes.
</td><td>dbBd
</td></tr>

<tr>
<td><code>{{mediawiki.external(1)}}, ...{{mediawiki.external('n')}}</code>
</td><td>Elemento sólo de lectura que especifica las cadenas coincidentes parentizadas, si son incluidas en la expresión regular. El número de las posibles cadenas parentizadas es ilimitado.
</td><td>{{mediawiki.external(1)}}: bB<br>{{mediawiki.external(2)}}: d
</td></tr>
</tbody></table>
<h3 name="Propiedades"> Propiedades </h3>
<dl><dd><dl><dt> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#constructor">constructor</a></dt><dd> Especifica la función que crea un prototipo de Objeto.
</dd><dt> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#index">index</a></dt><dd> Para un arreglo creado por una coincidencia de una expresión regular, el índice basado en cero de una coindencia en una cadena.
</dd><dt> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#input">input</a></dt><dd>  Para un arreglo de coincidencias creado por una expresión regular, refleja la cadena original con la coincidencias encontradas por la expresión regular.
</dd><dt> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#length">length</a></dt><dd> Refleja el número de elementos en un arreglo.
</dd><dt> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#prototype">prototype</a></dt><dd> Permite la adición de propiedades a todos los objetos.
</dd></dl>
</dd></dl>
<h3 name="M.C3.A9todos"> Métodos</h3>
<h4 name="M.C3.A9todos_Transformadores_.5BMutator.5D"> Métodos Transformadores [Mutator] </h4>
<p>Estos métodos modifican el arreglo:
</p>
<dl><dd><dl><dt> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#pop">pop</a></dt><dd> Remueve el último elemento de un arreglo y retorna este elemento.
</dd><dt> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#push">push</a></dt><dd> Aañade uno o más elementos al final de un arreglo y retorna la nueva longitud de un arreglo.
</dd><dt> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#reverse">reverse</a></dt><dd> Reversa el orden de los elementos de un arreglo -- el primero llega a ser el último y el último llega aser el primero.
</dd><dt> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#shift">shift</a></dt><dd> Remueve el primer elemento de un arreglo y retorna este elemento.
</dd><dt> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#sort">sort</a></dt><dd> Ordena los elementos de un arreglo.
</dd><dt> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#splice">splice</a></dt><dd> Añade y/o remueve elemtnos de un arreglo.
</dd><dt> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#unshift">unshift</a></dt><dd> Añade uno o más elementos al comienzo de un arreglo y retorna la nueva longitud del arreglo.
</dd></dl>
</dd></dl>
<h4 name="M.C3.A9todos_de_acceso_.5BAccessor_methods.5D"> Métodos de acceso [Accessor methods] </h4>
<p><span class="comment">need a better name...</span>
</p><p>Estos métodos no modifican un arreglo y retornan alguna representación del arreglo.
</p>
<dl><dd><dl><dt> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#concat">concat</a></dt><dd> Retorna un nuevo arreglo que comprende este arreglo unido con otro arreglo(s) y/o valor(es).
</dd><dt> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#join">join</a></dt><dd> Une todos los elementos de un arreglo en una cadena.
</dd><dt> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#slice">slice</a></dt><dd> Extrae una sección de un arreglo y retorna un nuevo arreglo.
</dd><dt> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#toSource">toSource</a></dt><dd> Retorna un arreglo literal representando el arreglo especificado; Puede utilizar este valor para crea un nuevo arreglo. Sobre escribe al método Object.toSource.
</dd><dt> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#toString">toString</a></dt><dd> Retorna una cadena representando el arreglo y sus elementos. Sobre escribe el método <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Object#toString">Object.toString</a>.
</dd><dt> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#valueOf">valueOf</a></dt><dd> Retorna el valor primitivo de un arreglo. Sobre escribe el método {{mediawiki.external('Referencia de JavaScript 1.5:Objetos globales:Object#valueOf|Object.valueOf')}}].
</dd></dl>
</dd></dl>
<div class="note">Los siguientes métodos han sido introducidos en JavaScript 1.6, para más detalles <a href="es/Novedades_en_JavaScript_1.6">Novedades en JavaScript 1.6</a>.</div>
<dl><dd><dl><dt> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#indexOf">indexOf</a></dt><dd> Retorna el primer (el menor) índice de un elemento dentro de un arreglo igual al valor especificado, o -1 si ninguno es encontrado.
</dd><dt> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#lastIndexOf">lastIndexOf</a></dt><dd> Retorna el último (el mayor) índice de un elemento dentro de un arreglo igual al valor especificado, o -1 si ninguno es encontrado.
</dd></dl>
</dd></dl>
<h4 name="M.C3.A9todos_de_repetici.C3.B3n"> Métodos de repetición </h4>
<div class="note">Los siguientes métodos han sido introducidos en JavaScript 1.6, para más detalles <a href="es/Novedades_en_JavaScript_1.6">Novedades en JavaScript 1.6</a>.</div>
<p>Varios métodos toman como argumentos funciones que son reinvocadas mientras se procesa el arreglo. Cuando estos métodos son invocados, la longitud <code>length</code> del arreglo se muestrea y cualquier elemento añadido más allá de esta longitud desde el interior de la reinvocación no es visitado. Otros cambios al arreglo (configuración del un valor o la eliminación de un elemento) puede afectar los resultados de la operacion si el método visita luego el elemento cambiado. el comportamiento específico de estos métodos en tales casos no está siempe bien definido y no debería confiarse sobre ello.
</p>
<dl><dd><dl><dt> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#filter">filter</a></dt><dd> Crea un nuevo arreglo con todos los elementos de este arreglo para los cuales la funcion de filtrado provista retorna verdadero {{mediawiki.external('true')}}.
</dd><dt> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#forEach">forEach</a></dt><dd> Invoca a una funcion por cada elemento en el arreglo.
</dd><dt> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#every">every</a></dt><dd> Retorna verdadero{{mediawiki.external('true')}} si cada elemento en este arreglo satisface la función de pruebas {{mediawiki.external('testing')}} provista.
</dd><dt> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#map">map</a></dt><dd> Crea un nuevo arreglo con los resultados de la invocación de una funcion provista sobre cda elemento en este arreglo.
</dd><dt> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#some">some</a></dt><dd> Retorna verdadero {{mediawiki.external('true')}} si al menos un elemento en este arreglo satisface la función de pruebas provista.
</dd></dl>
</dd></dl>
<h4 name="M.C3.A9todos_en_general"> Métodos en general </h4>
<p>Muchos métodos para el objeto Array de JavaScript están diselado para ser aplicados generalmente a todos los objetos los cuales "se asemejan" a los arreglos. Esto es, ellos pueden se utilizados sobre cualquier objeto los cuales tien una propiedad de longitud <code>length</code> y los cuales pueden ser útiles para ser accesados utilizando nombres de propiedades numéricas (tal como con la indexación <code>array{{mediawiki.external(5)}}</code>).
</p>
<div class="note">
<p>POR HACER: dar ejemplos con Array.prototype.forEach.call y añadir el método a un objeto como <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/JavaArray">JavaArray</a> o <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/String">String</a>.
</p>
</div>
<p>Algunos métodos, tales como <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#join">join</a>, únicamente leen la longitud <code>length</code> y las propiedades numéricas del objeto son invocados.  Otros, como <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#reverse">reverse</a>, requieren que las propiedades numéricas del objeto y la longitud <code>length</code> sean mutables; estos métodos pueden sin embargo no ser invocados sobre objetos como <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/String">String</a>, los cuales no permiten que su propiedad <code>length</code> o propiedades numéricas sintetizadas sean configuradas.
</p><p>Los métodos que trabajan sobre cualquier arreglo como objeto y <b>no</b> necesitan alterar las propiedades numéricas o la longitud <code>length</code> son:
</p>
<ul><li> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#concat">concat</a>
</li><li> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#every">every</a> (JS 1.6+)
</li><li> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#filter">filter</a> (JS 1.6+)
</li><li> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#forEach">forEach</a> (JS 1.6+)
</li><li> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#indexOf">indexOf</a> (JS 1.6+)
</li><li> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#join">join</a>
</li><li> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#lastIndexOf">lastIndexOf</a> (JS 1.6+)
</li><li> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#map">map</a> (JS 1.6+)
</li><li> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#slice">slice</a>
</li><li> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#some">some</a> (JS 1.6+)
</li><li> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#toSource">toSource</a>
</li><li> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#toString">toString</a>
</li><li> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#valueOf">valueOf</a>
</li></ul>
<p>Los métodos que alteran las propiedades numéricas o la longitud <code>length</code> de un objeto son invocados como:
</p>
<ul><li> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#pop">pop</a>
</li><li> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#push">push</a>
</li><li> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#reverse">reverse</a>
</li><li> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#shift">shift</a>
</li><li> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#sort">sort</a>
</li><li> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#splice">splice</a>
</li><li> <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#unshift">unshift</a>
</li></ul>
<p>Este ejemplo muestra como utilizar <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/Array#map">map</a> sobre un objeto <a href="es/Referencia_de_JavaScript_1.5/Objetos_globales/String">string</a> para obtener un arreglo de bytes codificados en representación de valores de caracteres ASCII:
</p>
<pre>var a = Array.prototype.map.call("Hello World", 
                                 function(x) { return x.charCodeAt(0); })
// y ahora igual a [72,101,108,108,111,32,87,111,114,108,100]
</pre>
<h3 name="Ejemplos"> Ejemplos </h3>
<h4 name="Creando_un_Arreglo"> Creando un Arreglo </h4>
<p>el siguiente ejemplo crea un arreglo, <code>msgArray</code>, con una longitud de 0, luego asigna valores para <code>msgArray{{mediawiki.external(0)}}</code> y <code>msgArray{{mediawiki.external(99)}}</code>, cambiando la longitud del arreglo a 100.
</p>
<pre class="eval">var msgArray = new Array();
msgArray[0] = "Hola";
msgArray[99] = "mundo";
// La sentencia siguiene es verdadera,
// debido al elemento msgArray[99] definido.
if (msgArray.length == 100)
   myVar = "La longitud es 100.";
</pre>
<h4 name="Creating_a_Two-dimensional_Array"> Creating a Two-dimensional Array </h4>
<p>The following creates a two-dimensional array and assigns the results to <code>myVar</code>.
</p>
<pre class="eval">var myVar = "Multidimensional array test; ";
var nb = 4;
var a = new Array(nb);
for (var i = 0; i &lt; nb; i++) {
   a[i] = new Array(nb);
   for (var j = 0; j &lt; nb; j++) {
      a[i][j] = "[" + i + "," + j + "]";
   }
}
for (var i = 0; i &lt; nb; i++) {
   var str = "Row " + i + ":";
   for (var j = 0; j &lt; nb; j++) {
      str += a[i][j];
   }
   myVar += str + "; ";
}
</pre>
<p>The following string is assigned to <code>myVar</code> (line breaks are used here for readability):
</p>
<pre class="eval">Multidimensional array test;
Row 0: [0,0][0,1][0,2][0,3];
Row 1: [1,0][1,1][1,2][1,3];
Row 2: [2,0][2,1][2,2][2,3];
Row 3: [3,0][3,1][3,2][3,3];
</pre>
<p>Also try with <code>nb = 8</code> and see it expand.
</p><p>{{template.AnteriorSiguiente("Referencia de JavaScript 1.5:Objetos globales", "Referencia de JavaScript 1.5:Objetos globales:Boolean")}}
</p>
<div class="noinclude">
</div>
{{ wiki.languages( { "en": "en/Core_JavaScript_1.5_Reference/Global_Objects/Array", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Objets_globaux/Array", "ja": "ja/Core_JavaScript_1.5_Reference/Global_Objects/Array", "pl": "pl/Dokumentacja_j\u0119zyka_JavaScript_1.5/Obiekty/Array" } ) }}
Revertir a esta revisión