Existe um arraylist em Javascript?

92

Eu tenho um monte de coisas que quero adicionar em um array e não sei qual será o tamanho do array de antemão. Posso fazer algo semelhante ao arraylist c # em javascript e fazer myArray.Add(object);repetidamente nele?

NibblyPig
fonte

Respostas:

51

Não há ArrayList em javascript.

No entanto, existe o ArrayECMA 5.1 que tem funcionalidade semelhante a um "ArrayList". A maior parte desta resposta é obtida literalmente da renderização HTML do Ecma-262 Edição 5.1, A Especificação da Linguagem ECMAScript .

Matrizes definidas têm os seguintes métodos disponíveis:

  • .toString ( )
  • .toLocaleString ( )
  • .concat ( [ item1 [ , item2 [ , … ] ] ] )
    Quando o método concat é chamado com zero ou mais argumentos item1, item2, etc., ele retorna um array contendo os elementos do array do objeto seguidos pelos elementos do array de cada argumento em ordem.
  • .join (separator)
    Os elementos da matriz são convertidos em Strings e essas Strings são então concatenadas, separadas por ocorrências do separador. Se nenhum separador for fornecido, uma única vírgula será usada como separador.
  • .pop ( )
    O último elemento da matriz é removido da matriz e retornado.
  • .push ( [ item1 [ , item2 [ , … ] ] ] )
    Os argumentos são anexados ao final da matriz, na ordem em que aparecem. O novo comprimento da matriz é retornado como resultado da chamada. "
  • .reverse ( )
    Os elementos da matriz são reorganizados de forma a inverter sua ordem. O objeto é retornado como resultado da chamada.
  • .shift ( )
    O primeiro elemento da matriz é removido da matriz e retornado. "
  • .slice (start, end)
    O método slice recebe dois argumentos, start e end, e retorna um array contendo os elementos do array desde o elemento start até, mas não incluindo, o elemento end (ou até o final do array se end for indefinido).
  • .sort (comparefn)
    Os elementos desta matriz são classificados. A classificação não é necessariamente estável (ou seja, os elementos que se comparam igual não permanecem necessariamente em sua ordem original). Se comparefn não for indefinido, deve ser uma função que aceita dois argumentos xey e retorna um valor negativo se x <y, zero se x = y, ou um valor positivo se x> y.
  • .splice (start, deleteCount [ , item1 [ , item2 [ , … ] ] ] )
    Quando o método splice é chamado com dois ou mais argumentos start, deleteCount e (opcionalmente) item1, item2, etc., os elementos deleteCount da matriz começando no início do índice da matriz são substituídos pelos argumentos item1, item2, etc. Um objeto Array contendo os elementos excluídos (se houver) é retornado.
  • .unshift ( [ item1 [ , item2 [ , … ] ] ] )
    Os argumentos são prefixados ao início da matriz, de forma que sua ordem na matriz seja igual à ordem em que aparecem na lista de argumentos.
  • .indexOf ( searchElement [ , fromIndex ] )
    indexOf compara searchElement aos elementos da matriz, em ordem crescente, usando o algoritmo de comparação de igualdade estrita (11.9.6) e, se encontrado em uma ou mais posições, retorna o índice da primeira dessas posições; caso contrário, -1 é retornado.
  • .lastIndexOf ( searchElement [ , fromIndex ] )
    lastIndexOf compara searchElement aos elementos da matriz em ordem decrescente usando o algoritmo interno de comparação de igualdade estrita (11.9.6) e, se encontrado em uma ou mais posições, retorna o índice da última posição; caso contrário, -1 é retornado.
  • .every ( callbackfn [ , thisArg ] )
    callbackfn deve ser uma função que aceita três argumentos e retorna um valor coercível para o valor booleano verdadeiro ou falso. cada chama callbackfn uma vez para cada elemento presente na matriz, em ordem crescente, até encontrar um em que callbackfn retorne falso. Se tal elemento for encontrado, every retorna imediatamente falso. Caso contrário, se callbackfn retornou true para todos os elementos, every retornará true.
  • .some ( callbackfn [ , thisArg ] )
    callbackfn deve ser uma função que aceita três argumentos e retorna um valor coercível para o valor booleano verdadeiro ou falso. algumas chamadas callbackfn uma vez para cada elemento presente na matriz, em ordem crescente, até encontrar um em que callbackfn retorne verdadeiro. Se tal elemento for encontrado, algum retorna imediatamente verdadeiro. Caso contrário, alguns retornam falso.
  • .forEach ( callbackfn [ , thisArg ] )
    callbackfn deve ser uma função que aceita três argumentos. forEach chama callbackfn uma vez para cada elemento presente na matriz, em ordem crescente.
  • .map ( callbackfn [ , thisArg ] )
    callbackfn deve ser uma função que aceita três argumentos. map chama callbackfn uma vez para cada elemento da matriz, em ordem crescente, e constrói uma nova matriz a partir dos resultados.
  • .filter ( callbackfn [ , thisArg ] )
    callbackfn deve ser uma função que aceita três argumentos e retorna um valor coercível para o valor booleano verdadeiro ou falso. filter chama callbackfn uma vez para cada elemento na matriz, em ordem crescente, e constrói uma nova matriz de todos os valores para os quais callbackfn retorna true.
  • .reduce ( callbackfn [ , initialValue ] )
    callbackfn deve ser uma função com quatro argumentos. reduza chama o callback, como uma função, uma vez para cada elemento presente na matriz, em ordem crescente.
  • .reduceRight ( callbackfn [ , initialValue ] )
    callbackfn deve ser uma função com quatro argumentos. reduzRight chama o retorno de chamada, como uma função, uma vez para cada elemento presente na matriz, em ordem decrescente.

e também a propriedade de comprimento .

Travis J
fonte
22

Com javascript, todos os arrays são flexíveis. Você pode simplesmente fazer algo como o seguinte:

var myArray = [];

myArray.push(object);
myArray.push(anotherObject);
// ...
JasonWyatt
fonte
Eu te amo, mesmo se eu realmente não te conheço.
sabsab
14

Arrays são bastante flexíveis em JS, você pode fazer:

var myArray = new Array();
myArray.push("string 1");
myArray.push("string 2");
JonoW
fonte
No entanto, você não pode remover facilmente um elemento específico
Jacob Sánchez
7

Você nem precisa empurrar, você pode fazer algo assim -

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

A[A.length]=50;
kennebec
fonte
5

javascript usa matrizes dinâmicas, não há necessidade de declarar o tamanho de antemão

você pode empurrar e mudar para arrays quantas vezes quiser, o javascript cuidará da alocação e outras coisas para você

tricô
fonte
3

No Java script, você declara o array conforme abaixo:

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

e para arraylist ou objeto ou array você deve usar json; e serialize-o usando json usando o seguinte código:

 var serializedMyObj = JSON.stringify(myObj);
Vaibhav Parmar
fonte
Ei, obrigado por fornecer informações adicionais. Essa serialização Json realmente ajudou
Prakash
1

Use o push()método de array javascript , ele adiciona o objeto fornecido no final do array. Arrays JS são bastante flexíveis, você pode enviar quantos objetos desejar em um array sem especificar o seu comprimento de antemão. Além disso, diferentes tipos de objetos podem ser colocados no mesmo Array.

Kirti Thorat
fonte
0

Basta usar array.push(something);. Matrizes Javascript são como ArrayLists nesse aspecto - podem ser tratadas como se tivessem um comprimento flexível (ao contrário de matrizes java).

Boêmio
fonte
0

Experimente, talvez possa ajudar, faça o que quiser:

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
fonte