¿Existe una lista de arrays en Javascript?

92

Tengo un montón de cosas que quiero agregar a una matriz y no sé de antemano cuál será el tamaño de la matriz. ¿Puedo hacer algo similar a la lista de matrices de c # en javascript y hacerlo myArray.Add(object);repetidamente?

NibblyPig
fuente

Respuestas:

51

No hay ArrayList en javascript.

Sin embargo, existe ArrayECMA 5.1 que tiene una funcionalidad similar a una "ArrayList". La mayor parte de esta respuesta se tomó literalmente de la representación HTML de Ecma-262 Edición 5.1, La especificación del lenguaje ECMAScript .

Las matrices definidas tienen los siguientes métodos disponibles:

  • .toString ( )
  • .toLocaleString ( )
  • .concat ( [ item1 [ , item2 [ , … ] ] ] )
    Cuando se llama al método concat con cero o más argumentos item1, item2, etc., devuelve una matriz que contiene los elementos de la matriz del objeto seguidos de los elementos de la matriz de cada argumento en orden.
  • .join (separator)
    Los elementos de la matriz se convierten en cadenas y estas cadenas se concatenan, separadas por apariciones del separador. Si no se proporciona un separador, se utiliza una sola coma como separador.
  • .pop ( )
    El último elemento de la matriz se elimina de la matriz y se devuelve.
  • .push ( [ item1 [ , item2 [ , … ] ] ] )
    Los argumentos se añaden al final de la matriz, en el orden en que aparecen. La nueva longitud de la matriz se devuelve como resultado de la llamada ".
  • .reverse ( )
    Los elementos de la matriz se reorganizan para invertir su orden. El objeto se devuelve como resultado de la llamada.
  • .shift ( )
    El primer elemento de la matriz se elimina de la matriz y se devuelve ".
  • .slice (start, end)
    El método slice toma dos argumentos, start y end, y devuelve una matriz que contiene los elementos de la matriz desde el inicio del elemento hasta el final del elemento, pero sin incluirlo (o hasta el final de la matriz si end no está definido).
  • .sort (comparefn)
    Los elementos de esta matriz están ordenados. El género no es necesariamente estable (es decir, los elementos que se comparan iguales no necesariamente permanecen en su orden original). Si comparefn no está indefinido, debería ser una función que acepte dos argumentos xey y devuelva un valor negativo si x <y, cero si x = y, o un valor positivo si x> y.
  • .splice (start, deleteCount [ , item1 [ , item2 [ , … ] ] ] )
    Cuando se llama al método de empalme con dos o más argumentos start, deleteCount y (opcionalmente) item1, item2, etc., los elementos deleteCount de la matriz que comienzan en el inicio del índice de la matriz son reemplazados por los argumentos item1, item2, etc. Un objeto Array que contiene los elementos eliminados (si los hay) se devuelve.
  • .unshift ( [ item1 [ , item2 [ , … ] ] ] )
    Los argumentos se anteponen al comienzo de la matriz, de modo que su orden dentro de la matriz es el mismo que el orden en el que aparecen en la lista de argumentos.
  • .indexOf ( searchElement [ , fromIndex ] )
    indexOf compara searchElement con los elementos de la matriz, en orden ascendente, utilizando el algoritmo interno de comparación de igualdad estricta (11.9.6) y, si se encuentra en una o más posiciones, devuelve el índice de la primera posición; de lo contrario, se devuelve -1.
  • .lastIndexOf ( searchElement [ , fromIndex ] )
    lastIndexOf compara searchElement con los elementos de la matriz en orden descendente utilizando el algoritmo interno de comparación de igualdad estricta (11.9.6) y, si se encuentra en una o más posiciones, devuelve el índice de la última posición; de lo contrario, se devuelve -1.
  • .every ( callbackfn [ , thisArg ] )
    callbackfn debe ser una función que acepte tres argumentos y devuelva un valor que sea coercible al valor booleano verdadero o falso. every llama a callbackfn una vez para cada elemento presente en la matriz, en orden ascendente, hasta que encuentra uno donde callbackfn devuelve falso. Si se encuentra un elemento de este tipo, every devuelve falso inmediatamente. De lo contrario, si callbackfn devolvió verdadero para todos los elementos, cada devolverá verdadero.
  • .some ( callbackfn [ , thisArg ] )
    callbackfn debe ser una función que acepte tres argumentos y devuelva un valor que sea coercible al valor booleano verdadero o falso. algunas llaman a callbackfn una vez para cada elemento presente en la matriz, en orden ascendente, hasta que encuentra uno donde callbackfn devuelve verdadero. Si se encuentra tal elemento, algunos devuelven inmediatamente verdadero. De lo contrario, algunos devuelven falso.
  • .forEach ( callbackfn [ , thisArg ] )
    callbackfn debería ser una función que acepte tres argumentos. forEach llama a callbackfn una vez para cada elemento presente en la matriz, en orden ascendente.
  • .map ( callbackfn [ , thisArg ] )
    callbackfn debería ser una función que acepte tres argumentos. map llama a callbackfn una vez para cada elemento de la matriz, en orden ascendente, y construye una nueva matriz a partir de los resultados.
  • .filter ( callbackfn [ , thisArg ] )
    callbackfn debe ser una función que acepte tres argumentos y devuelva un valor que sea coercible al valor booleano verdadero o falso. filter llama a callbackfn una vez para cada elemento de la matriz, en orden ascendente, y construye una nueva matriz de todos los valores para los que callbackfn devuelve verdadero.
  • .reduce ( callbackfn [ , initialValue ] )
    callbackfn debería ser una función que tenga cuatro argumentos. reduce llama a la devolución de llamada, como función, una vez para cada elemento presente en la matriz, en orden ascendente.
  • .reduceRight ( callbackfn [ , initialValue ] )
    callbackfn debería ser una función que tenga cuatro argumentos. reduceRight llama a la devolución de llamada, como función, una vez por cada elemento presente en la matriz, en orden descendente.

y también la propiedad de longitud .

Travis J
fuente
22

Con javascript, todas las matrices son flexibles. Simplemente puede hacer algo como lo siguiente:

var myArray = [];

myArray.push(object);
myArray.push(anotherObject);
// ...
JasonWyatt
fuente
Te amo, incluso si realmente no te conozco.
sábado
14

Las matrices son bastante flexibles en JS, puede hacer:

var myArray = new Array();
myArray.push("string 1");
myArray.push("string 2");
JonoW
fuente
Sin embargo
Jacob Sánchez
7

Ni siquiera necesitas empujar, puedes hacer algo como esto:

var A=[10,20,30,40];

A[A.length]=50;
Kennebec
fuente
5

javascript usa matrices dinámicas, no es necesario declarar el tamaño de antemano

puede presionar y cambiar a matrices tantas veces como desee, javascript se encargará de la asignación y todo eso por usted

Knittl
fuente
3

En el script Java, declara la matriz de la siguiente manera:

var array=[];
array.push();

y para la lista de matrices u objeto o matriz debe usar json; y serialícelo usando json usando el siguiente código:

 var serializedMyObj = JSON.stringify(myObj);
Vaibhav Parmar
fuente
Hola, gracias por proporcionar información adicional. Esa serialización de Json realmente ayudó
Prakash
1

Use el push()método de matriz de JavaScript , agrega el objeto dado al final de la matriz. Las matrices JS son bastante flexibles, puede insertar tantos objetos como desee en una matriz sin especificar su longitud de antemano. Además, se pueden enviar diferentes tipos de objetos a la misma matriz.

Kirti Thorat
fuente
0

Solo usa array.push(something);. Las matrices de Javascript son como ArrayLists a este respecto: pueden tratarse como si tuvieran una longitud flexible (a diferencia de las matrices de Java).

Bohemio
fuente
0

Pruebe esto, tal vez pueda ayudar, haga lo que quiera:

ListArray

var listArray = new ListArray();
let element = {name: 'Edy', age: 27, country: "Brazil"};
let element2 = {name: 'Marcus', age: 27, country: "Brazil"};
listArray.push(element);
listArray.push(element2);

console.log(listArray.array)
<script src="https://marcusvi200.github.io/list-array/script/ListArray.js"></script>

Marcus Vinicius Oliveira Silva
fuente