Есть ли в Javascript Arraylist?

92

У меня есть несколько вещей, которые я хочу добавить в массив, и я заранее не знаю, какой будет размер массива. Могу ли я сделать что-то похожее на Arraylist С # в javascript и myArray.Add(object);повторить это многократно?

NibblyPig
источник

Ответы:

145

просто используйте array.push ();

var array = [];


array.push(value);

Это добавит к нему еще один элемент.

Чтобы снять один, используйте array.pop();

Ссылка на массивы JavaScript: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array

kemiller2002
источник
Ссылка больше не доступна.
sabsab
Вы можете добавить столько данных в массив, сколько хотите - arr.push (element1 [, ... [, elementN]]) - developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
CarlosZ
52

В javascript нет ArrayList.

Однако существует ArrayECMA 5.1, функциональность которого аналогична «ArrayList». Большая часть этого ответа дословно взята из HTML-рендеринга Ecma-262 Edition 5.1, Спецификация языка ECMAScript .

Для определенных массивов доступны следующие методы:

  • .toString ( )
  • .toLocaleString ( )
  • .concat ( [ item1 [ , item2 [ , … ] ] ] )
    Когда метод concat вызывается с нулем или более аргументов item1, item2 и т. Д., Он возвращает массив, содержащий элементы массива объекта, за которыми следуют элементы массива каждого аргумента по порядку.
  • .join (separator)
    Элементы массива преобразуются в строки, а затем эти строки объединяются и разделяются экземплярами разделителя. Если разделитель не указан, в качестве разделителя используется одна запятая.
  • .pop ( )
    Последний элемент массива удаляется из массива и возвращается.
  • .push ( [ item1 [ , item2 [ , … ] ] ] )
    Аргументы добавляются в конец массива в том порядке, в котором они появляются. В результате вызова возвращается новая длина массива ".
  • .reverse ( )
    Элементы массива переставляются в обратном порядке. Объект возвращается в результате вызова.
  • .shift ( )
    Первый элемент массива удаляется из массива и возвращается ".
  • .slice (start, end)
    Метод slice принимает два аргумента, start и end, и возвращает массив, содержащий элементы массива от начала элемента до конца элемента, но не включая его (или до конца массива, если конец не определен).
  • .sort (comparefn)
    Элементы этого массива отсортированы. Сортировка не обязательно является стабильной (то есть элементы, которые сравниваются как равные, не обязательно остаются в исходном порядке). Если comparefn не определен, это должна быть функция, которая принимает два аргумента x и y и возвращает отрицательное значение, если x <y, ноль, если x = y, или положительное значение, если x> y.
  • .splice (start, deleteCount [ , item1 [ , item2 [ , … ] ] ] )
    Когда метод splice вызывается с двумя или более аргументами start, deleteCount и (необязательно) item1, item2 и т. Д., Элементы deleteCount массива, начиная с начала индекса массива, заменяются аргументами item1, item2 и т. Д. Объект Array содержащий удаленные элементы (если есть), возвращается.
  • .unshift ( [ item1 [ , item2 [ , … ] ] ] )
    Аргументы добавляются в начало массива, так что их порядок в массиве совпадает с порядком, в котором они появляются в списке аргументов.
  • .indexOf ( searchElement [ , fromIndex ] )
    indexOf сравнивает searchElement с элементами массива в порядке возрастания, используя внутренний алгоритм сравнения строгого равенства (11.9.6), и, если он обнаружен в одной или нескольких позициях, возвращает индекс первой такой позиции; в противном случае возвращается -1.
  • .lastIndexOf ( searchElement [ , fromIndex ] )
    lastIndexOf сравнивает searchElement с элементами массива в порядке убывания, используя внутренний алгоритм сравнения строгого равенства (11.9.6), и, если он обнаружен в одной или нескольких позициях, возвращает индекс последней такой позиции; в противном случае возвращается -1.
  • .every ( callbackfn [ , thisArg ] )
    callbackfn должен быть функцией, которая принимает три аргумента и возвращает значение, которое может быть приведено к логическому значению true или false. every вызывает callbackfn один раз для каждого элемента, присутствующего в массиве, в порядке возрастания, пока не найдет тот, где callbackfn вернет false. Если такой элемент найден, каждый сразу возвращает false. В противном случае, если callbackfn вернул истину для всех элементов, каждый вернет истину.
  • .some ( callbackfn [ , thisArg ] )
    callbackfn должен быть функцией, которая принимает три аргумента и возвращает значение, которое может быть приведено к логическому значению true или false. some вызывает callbackfn один раз для каждого элемента, присутствующего в массиве, в порядке возрастания, пока не найдет тот, где callbackfn вернет true. Если такой элемент найден, some сразу возвращает true. В противном случае some возвращает false.
  • .forEach ( callbackfn [ , thisArg ] )
    callbackfn должен быть функцией, которая принимает три аргумента. forEach вызывает callbackfn один раз для каждого элемента, присутствующего в массиве, в порядке возрастания.
  • .map ( callbackfn [ , thisArg ] )
    callbackfn должен быть функцией, которая принимает три аргумента. map вызывает callbackfn один раз для каждого элемента в массиве в порядке возрастания и создает новый массив из результатов.
  • .filter ( callbackfn [ , thisArg ] )
    callbackfn должен быть функцией, которая принимает три аргумента и возвращает значение, которое может быть приведено к логическому значению true или false. filter вызывает callbackfn один раз для каждого элемента в массиве в порядке возрастания и создает новый массив всех значений, для которых callbackfn возвращает true.
  • .reduce ( callbackfn [ , initialValue ] )
    callbackfn должен быть функцией, которая принимает четыре аргумента. reduce вызывает обратный вызов как функцию один раз для каждого элемента, присутствующего в массиве, в порядке возрастания.
  • .reduceRight ( callbackfn [ , initialValue ] )
    callbackfn должен быть функцией, которая принимает четыре аргумента. reduceRight вызывает обратный вызов как функцию один раз для каждого элемента, присутствующего в массиве, в порядке убывания.

а также свойство длины .

Трэвис Дж.
источник
23

С javascript все массивы гибкие. Вы можете просто сделать что-то вроде следующего:

var myArray = [];

myArray.push(object);
myArray.push(anotherObject);
// ...
Джейсон Вятт
источник
Я люблю тебя, даже если на самом деле тебя не знаю.
sabsab
14

Массивы в JS довольно гибкие, вы можете:

var myArray = new Array();
myArray.push("string 1");
myArray.push("string 2");
JonoW
источник
Однако вы не можете легко удалить определенный элемент
Джейкоб Санчес,
Конечно, можно: array.splice(index, 1)удаляет элемент в index.
countunique
7

Даже толкать не надо, можно что-то вроде этого -

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

A[A.length]=50;
Kennebec
источник
5

javascript использует динамические массивы, не нужно заранее объявлять размер

вы можете нажимать и переходить на массивы столько раз, сколько хотите, javascript будет обрабатывать выделение и прочее за вас

вязать
источник
3

В сценарии Java вы объявляете массив, как показано ниже:

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

а для arrayylist, объекта или массива вы должны использовать json; и сериализуйте его с помощью json, используя следующий код:

 var serializedMyObj = JSON.stringify(myObj);
Вайбхав Пармар
источник
Привет, спасибо за дополнительную информацию. Эта сериализация Json действительно помогла
Prakash
1

Используйте push()метод массива javascript , он добавляет данный объект в конец массива. JS-массивы довольно гибкие, вы можете помещать в массив столько объектов, сколько хотите, без предварительного указания его длины. Кроме того, в один и тот же массив можно помещать объекты разных типов.

Кирти Торат
источник
0

Просто используйте array.push(something);. В этом отношении массивы Javascript похожи на ArrayLists - их можно рассматривать так, как будто они имеют гибкую длину (в отличие от массивов java).

Богемный
источник
0

Попробуйте это, может быть, это поможет, он сделает то, что вы хотите:

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>

Марк Винисиус Оливейра Силва
источник