Чи є у Javascript арраліст?


92

У мене є купа речей, які я хочу додати в масив, і я не знаю, яким розміром буде масив заздалегідь. Чи можу я зробити щось подібне до c # arraylist у javascript, і робити це myArray.Add(object);неодноразово?

Відповіді:


145

просто використовуйте array.push ();

var array = [];


array.push(value);

Це додасть до нього ще один предмет.

Щоб зняти одну, використовуйте array.pop();

Посилання на масиви JavaScript: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array


Посилання більше не доступне.
sabsab

Ви можете додати в масив скільки завгодно даних - arr.push (element1 [, ... [, elementN]]) - developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
CarlosZ

51

У 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, і повертає масив, що містить елементи масиву, від елемента до початку, але не включаючи end end (або до кінця масиву, якщо end не визначений).
  • .sort (comparefn)
    Елементи цього масиву сортуються. Сортування не обов'язково стабільне (тобто елементи, що порівнюють рівні, не обов'язково залишаються у своєму початковому порядку). Якщо порівнянняfn не визначено, це повинна бути функція, яка приймає два аргументи x і y і повертає від'ємне значення, якщо x <y, нуль, якщо x = y, або додатне значення, якщо x> y.
  • .splice (start, deleteCount [ , item1 [ , item2 [ , … ] ] ] )
    Коли метод сплайсингу викликається з двома або більше аргументами 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. кожен виклик callbackfn один раз для кожного елемента, що присутній у масиві, у порядку зростання, поки не знайде той, де callbackfn повертає false. Якщо такий елемент знайдено, кожен негайно повертає false. В іншому випадку, якщо callbackfn повернув true для всіх елементів, кожен поверне true.
  • .some ( callbackfn [ , thisArg ] )
    callbackfn має бути функцією, яка приймає три аргументи і повертає примусове значення до булевого значення true або false. деякі виклики callbackfn один раз для кожного елемента, що присутній у масиві, у порядку зростання, поки він не знайде того, де callbackfn повертає true. Якщо такий елемент знайдено, деякі негайно повертають true. В іншому випадку деякі повертає false.
  • .forEach ( callbackfn [ , thisArg ] )
    callbackfn має бути функцією, яка приймає три аргументи. forEach викликає callbackfn один раз для кожного елемента, що присутній у масиві, у порядку зростання.
  • .map ( callbackfn [ , thisArg ] )
    callbackfn має бути функцією, яка приймає три аргументи. map викликає callbackfn один раз для кожного елемента масиву, за зростанням, і створює новий масив з результатів.
  • .filter ( callbackfn [ , thisArg ] )
    callbackfn має бути функцією, яка приймає три аргументи і повертає примусове значення до булевого значення true або false. фільтр викликає callbackfn один раз для кожного елементу масиву, за зростанням, і створює новий масив з усіх значень, для яких callbackfn повертає true.
  • .reduce ( callbackfn [ , initialValue ] )
    callbackfn має бути функцією, яка приймає чотири аргументи. зменшити виклики зворотного виклику, як функції, один раз для кожного елемента, що присутній у масиві, у порядку зростання.
  • .reduceRight ( callbackfn [ , initialValue ] )
    callbackfn має бути функцією, яка приймає чотири аргументи. reduceRight викликає зворотний виклик, як функцію, один раз для кожного елемента, що присутній у масиві, у порядку зменшення.

а також властивість length .


22

За допомогою JavaScript всі масиви гнучкі. Ви можете просто зробити щось на зразок наступного:

var myArray = [];

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

Я люблю тебе, навіть якщо я насправді не знаю тебе.
sabsab

14

Масиви досить гнучкі в JS, ви можете зробити:

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

Ви не можете легко видалити певний елемент
Якоб Санчес,

7

Вам навіть не потрібно натискати, ви можете зробити щось подібне -

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

A[A.length]=50;

5

javascript використовує динамічні масиви, не потрібно заздалегідь оголошувати розмір

Ви можете натискати та переходити до масивів стільки разів, скільки завгодно, javascript буде обробляти розподіл та інше за вас


3

У сценарії Java ви оголошуєте масив, як показано нижче:

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

а для arraylist або об’єкта чи масиву ви повинні використовувати json; та серіалізуйте його за допомогою json, використовуючи такий код:

 var serializedMyObj = JSON.stringify(myObj);

Привіт, дякую за надання додаткової інформації. Ця серіалізація Джсона дійсно допомогла
Пракаш

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>

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.