Czy w JavaScript jest arraylist?


92

Mam kilka rzeczy, które chcę dodać do tablicy i nie wiem wcześniej, jaki będzie rozmiar tablicy. Czy mogę zrobić coś podobnego do tablicy arraylist języka C # w javascript i robić to myArray.Add(object);wielokrotnie?

Odpowiedzi:


145

po prostu użyj array.push ();

var array = [];


array.push(value);

Spowoduje to dodanie do niego kolejnego elementu.

Aby zdjąć jedną, użyj array.pop();

Link do tablic JavaScript: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array


Link nie jest już dostępny.
sabsab

Możesz dodać dowolną liczbę danych w tablicy - arr.push (element1 [, ... [, elementN]]) - developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/ ...
CarlosZ

52

W javascript nie ma ArrayList.

Istnieje jednak ArrayECMA 5.1, który ma podobną funkcjonalność do „ArrayList”. Większość odpowiedzi pochodzi dosłownie z renderowania HTML Ecma-262 Edition 5.1, The ECMAScript Language Specification .

Zdefiniowane tablice mają dostępne następujące metody:

  • .toString ( )
  • .toLocaleString ( )
  • .concat ( [ item1 [ , item2 [ , … ] ] ] )
    Gdy metoda concat jest wywoływana z zerem lub większą liczbą argumentów pozycja1, pozycja2 itd., Zwraca tablicę zawierającą elementy tablicy obiektu, po których następują kolejno elementy tablicy każdego argumentu.
  • .join (separator)
    Elementy tablicy są konwertowane na ciągi znaków, a te ciągi są następnie łączone, oddzielane wystąpieniami separatora. Jeśli nie zostanie podany separator, jako separatora używany jest pojedynczy przecinek.
  • .pop ( )
    Ostatni element tablicy jest usuwany z tablicy i zwracany.
  • .push ( [ item1 [ , item2 [ , … ] ] ] )
    Argumenty są dołączane na końcu tablicy w kolejności, w jakiej się pojawiają. W wyniku wywołania zwracana jest nowa długość tablicy. "
  • .reverse ( )
    Elementy szyku są przestawiane tak, aby odwrócić ich kolejność. Obiekt jest zwracany jako wynik wywołania.
  • .shift ( )
    Pierwszy element tablicy jest usuwany z tablicy i zwracany. "
  • .slice (start, end)
    Metoda slice pobiera dwa argumenty, start i end, i zwraca tablicę zawierającą elementy tablicy od elementu start up do, ale nie włączając, elementu end (lub do końca tablicy, jeśli end jest niezdefiniowany).
  • .sort (comparefn)
    Elementy tej tablicy są sortowane. Sortowanie niekoniecznie jest stabilne (to znaczy elementy, które porównują równe sobie, niekoniecznie pozostają w swojej pierwotnej kolejności). Jeśli comparefn nie jest niezdefiniowane, powinna to być funkcja, która akceptuje dwa argumenty x i y i zwraca wartość ujemną, jeśli x <y, zero, jeśli x = y, lub wartość dodatnią, jeśli x> y.
  • .splice (start, deleteCount [ , item1 [ , item2 [ , … ] ] ] )
    Gdy metoda splice jest wywoływana z dwoma lub więcej argumentami start, deleteCount i (opcjonalnie) item1, item2 itd., Elementy deleteCount tablicy zaczynające się od początku indeksu tablicy są zastępowane przez argumenty item1, item2 itd. Obiekt Array zawierający usunięte elementy (jeśli istnieją) jest zwracany.
  • .unshift ( [ item1 [ , item2 [ , … ] ] ] )
    Argumenty są dołączane na początku tablicy, tak że ich kolejność w tablicy jest taka sama, jak kolejność, w jakiej pojawiają się na liście argumentów.
  • .indexOf ( searchElement [ , fromIndex ] )
    indexOf porównuje element searchElement z elementami tablicy, w porządku rosnącym, przy użyciu wewnętrznego algorytmu ścisłego porównywania równości (11.9.6), a jeśli zostanie znaleziony na jednej lub większej liczbie pozycji, zwraca indeks pierwszej takiej pozycji; w przeciwnym razie zwracane jest -1.
  • .lastIndexOf ( searchElement [ , fromIndex ] )
    lastIndexOf porównuje element searchElement z elementami tablicy w porządku malejącym przy użyciu wewnętrznego algorytmu ścisłego porównywania równości (11.9.6), a jeśli zostanie znaleziony na jednej lub kilku pozycjach, zwraca indeks ostatniej takiej pozycji; w przeciwnym razie zwracane jest -1.
  • .every ( callbackfn [ , thisArg ] )
    callbackfn powinna być funkcją akceptującą trzy argumenty i zwracającą wartość, która jest koerowalna na wartość logiczną prawda lub fałsz. every wywołuje callbackfn raz dla każdego elementu obecnego w tablicy, w porządku rosnącym, aż znajdzie taki, w którym callbackfn zwraca false. Jeśli taki element zostanie znaleziony, każdy natychmiast zwraca false. W przeciwnym razie, jeśli callbackfn zwróci true dla wszystkich elementów, every zwróci true.
  • .some ( callbackfn [ , thisArg ] )
    callbackfn powinna być funkcją akceptującą trzy argumenty i zwracającą wartość, która jest koerowalna na wartość logiczną prawda lub fałsz. niektóre wywołują callbackfn raz dla każdego elementu obecnego w tablicy, w porządku rosnącym, aż znajdzie taki, w którym callbackfn zwraca true. Jeśli taki element zostanie znaleziony, niektóre natychmiast zwracają prawdę. W przeciwnym razie niektóre zwracają fałsz.
  • .forEach ( callbackfn [ , thisArg ] )
    callbackfn powinna być funkcją przyjmującą trzy argumenty. forEach wywołuje callbackfn raz dla każdego elementu w tablicy, w porządku rosnącym.
  • .map ( callbackfn [ , thisArg ] )
    callbackfn powinna być funkcją przyjmującą trzy argumenty. map wywołuje callbackfn raz dla każdego elementu tablicy, w porządku rosnącym, i konstruuje nową Array na podstawie wyników.
  • .filter ( callbackfn [ , thisArg ] )
    callbackfn powinna być funkcją akceptującą trzy argumenty i zwracającą wartość, która jest koerowalna na wartość logiczną prawda lub fałsz. filter wywołuje callbackfn raz dla każdego elementu tablicy, w porządku rosnącym, i konstruuje nową tablicę wszystkich wartości, dla których callbackfn zwraca true.
  • .reduce ( callbackfn [ , initialValue ] )
    callbackfn powinna być funkcją, która przyjmuje cztery argumenty. Redukcja wywołuje funkcję zwrotną, jako funkcję, raz dla każdego elementu w tablicy, w porządku rosnącym.
  • .reduceRight ( callbackfn [ , initialValue ] )
    callbackfn powinna być funkcją, która przyjmuje cztery argumenty. redukRight wywołuje funkcję zwrotną, jako funkcję, raz dla każdego elementu w tablicy, w porządku malejącym.

a także właściwość length .


23

Dzięki javascript wszystkie tablice są elastyczne. Możesz po prostu zrobić coś takiego:

var myArray = [];

myArray.push(object);
myArray.push(anotherObject);
// ...

Kocham cię, nawet jeśli tak naprawdę cię nie znam.
sabsab

14

Tablice są dość elastyczne w JS, możesz zrobić:

var myArray = new Array();
myArray.push("string 1");
myArray.push("string 2");

Nie można jednak łatwo usunąć konkretnego elementu
Jacob Sánchez

Pewnie, że możesz: array.splice(index, 1)usuwa element pod adresem index.
countunique

7

Nie musisz nawet naciskać, możesz zrobić coś takiego -

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

A[A.length]=50;

5

javascript używa tablic dynamicznych, nie ma potrzeby wcześniejszego deklarowania rozmiaru

możesz naciskać i przesuwać się do tablic tyle razy, ile chcesz, javascript zajmie się alokacją i innymi rzeczami za Ciebie


3

W skrypcie Java deklarujemy tablicę jak poniżej:

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

a dla arraylist, obiektu lub tablicy musisz użyć json; i Serializuj go przy użyciu json przy użyciu następującego kodu:

 var serializedMyObj = JSON.stringify(myObj);

Hej, dziękuję za podanie dodatkowych informacji. Ta serializacja Json naprawdę pomogła
Prakash

1

Użyj push()metody tablicowej javascript , doda podany obiekt na końcu tablicy. Tablice JS są dość elastyczne, możesz umieścić dowolną liczbę obiektów w tablicy bez wcześniejszego określania jej długości. Do tego samego Array można także wypychać różne typy obiektów.


0

Po prostu użyj array.push(something);. Tablice JavaScript są pod tym względem podobne do ArrayLists - można je traktować tak, jakby miały elastyczną długość (w przeciwieństwie do tablic java).


0

Spróbuj tego, może pomoże, zrób co chcesz:

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>

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.