Добавить новое значение в существующий массив в JavaScript

В PHP я бы сделал что-то вроде:

$array = array();
$array[] = "value1";
$array[] = "value2";
$array[] = "value3";

Как я буду делать то же самое в JavaScript?

Ответ 1

Для этого вам не нужен jQuery. Используйте обычный javascript

var arr = new Array();
// or var arr = [];
arr.push('value1');
arr.push('value2');

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

var obj = new Object();
Array.prototype.push.call(obj, 'value');

создаст объект, который выглядит так:

{
    0: 'value',
    length: 1
}

Вы можете получить доступ к vaules, как обычный массив f.ex obj[0].

Ответ 2

Это не имеет ничего общего с jQuery, просто JavaScript в целом.

Чтобы создать массив в JavaScript:

var a = [];

Или:

var a = ['value1', 'value2', 'value3'];

Чтобы добавить значения в конец существующего массива:

a.push('value4');

Чтобы создать новый массив, вы должны использовать [] вместо new Array() по следующим причинам:

  • new Array(1, 2) эквивалентен [1, 2], но new Array(1) не эквивалентен [1]. Скорее последнее ближе к [undefined], так как единственный целочисленный аргумент конструктору Array указывает желаемую длину массива.
  • Array, как и любой другой встроенный класс JavaScript, не является ключевым словом. Поэтому кто-то может легко определить Array в вашем коде, чтобы сделать что-то другое, кроме как построить массив.

Ответ 3

Массив - это собственный объект JavaScript, почему бы вам просто не попробовать использовать его API? Знание API само по себе сэкономит вам время, когда вы переключитесь на чистый JavaScript или другую инфраструктуру.

Существует множество различных возможностей, поэтому используйте тот, который в основном нацелен на ваши потребности.

Создание массива со значениями:

var array = ["value1", "value2", "value3"];

Добавление значений в конец

var array = [];
array.push("value1");
array.push("value2");
array.push("value3");

Добавление значений в начало:

var array = [];
array.unshift("value1");
array.unshift("value2");
array.unshift("value3");

Добавление значений в некоторый индекс:

var array = [];
array[index] = "value1";

или используя сплайсинг

array.splice(index, 0, "value1", "value2", "value3");

Выберите тот, который вам нужен.

Ответ 4

Вы можете использовать метод .push() (который является стандартным JavaScript)

например.

var primates = new Array();
primates.push('monkey');
primates.push('chimp');

Ответ 5

Существует несколько способов:

Создание массива:

var arr;

arr = new Array(); // empty array

// ---

arr = [];          // empty array

// ---

arr = new Array(3);
alert(arr.length);  // 3
alert(arr[0]); // undefined

// ---

arr = [3];
alert(arr.length);  // 1
alert(arr[0]); // 3

Нажатие на массив:

arr = [3];     // arr == [3]
arr[1] = 4;    // arr == [3, 4]
arr[2] = 5;    // arr == [3, 4, 5]
arr[4] = 7;    // arr == [3, 4, 5, undefined, 7]

// ---

arr = [3];
arr.push(4);        // arr == [3, 4]
arr.push(5);        // arr == [3, 4, 5]
arr.push(6, 7, 8);  // arr == [3, 4, 5, 6, 7, 8]

Использование .push() - лучший способ добавить к массиву, так как вам не нужно знать, сколько элементов уже существует, и вы можете добавить много элементов в один вызов функции.

Ответ 6

array = ["value1", "value2", "value3"]

это не так много jquery как javascript

Ответ 7

В самом деле, вы должны инициализировать свой массив, затем сразу после этого используйте командную строку array.push().

var array = new Array();
array.push("first value");
array.push("second value");

Ответ 8

jQuery - это абстракция JavaScript. Подумайте о jQuery как подмножестве JavaScript, предназначенном для работы с DOM. Что, как говорится; существуют функции для добавления элементов (ов) в коллекцию. Я бы использовал базовый JavaScript в вашем случае:

var array;

array[0] = "value1";
array[1] = "value2";
array[2] = "value3";

... Или:

var array = ["value1", "value2", "value3"];

... Или:

var array = [];

array.push("value1");
array.push("value2");
array.push("value3");