Используйте Array.prototype.push
метод для добавления значений в массив:
// initialize array
var arr = [
"Hi",
"Hello",
"Bonjour"
];
// append new value to the array
arr.push("Hola");
console.log(arr);
Вы можете использовать push()
функцию для добавления более одного значения в массив за один вызов:
// initialize array
var arr = ["Hi", "Hello", "Bonjour", "Hola"];
// append multiple values to the array
arr.push("Salut", "Hey");
// display all values
for (var i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
Обновить
Если вы хотите добавить элементы одного массива в другой, вы можете использовать firstArray.concat(secondArray)
:
var arr = [
"apple",
"banana",
"cherry"
];
arr = arr.concat([
"dragonfruit",
"elderberry",
"fig"
]);
console.log(arr);
Обновить
Просто дополнение к этому ответу, если вы хотите добавить любое значение в начало массива, что означает первый индекс, то вы можете использовать Array.prototype.unshift
для этой цели.
var arr = [1, 2, 3];
arr.unshift(0);
console.log(arr);
Он также поддерживает добавление нескольких значений одновременно, как push
.
for
вообще (использовать.forEach
).length
собственности. Переводчик сам делает потрясающую работу, и в Реальном Мире не будет никакого значения, оптимизируете ли вы его или нет. Если ваш массив становится настолько большим, что оптимизация.length
действительно может помочь, скорее всего, массив больше не является правильной структурой данных. ИспользованиеforEach
имеет свои преимущества, но весьма сомнительно, что одним из них будет увеличение производительности, поскольку вызов функции для каждой итерации требует затрат и ничего не экономит.length
Свойство массива не вычисляется каждый раз, когда вы вызываете его, это переменная, хранящаяся вarray
объекте, которая обновляется только при изменении массива. Так что на самом деле нет затрат на производительность, в том числеarr.length
вfor
состоянии.forEach
функции обратного вызова (некоторые из них, вероятно, уже это делают), и не будет никакой разницы в сгенерированном машинном коде, если функция вызывается достаточно часто, чтобы ее компилировали, а не интерпретировали с помощью время выполнения. Тот же совет, что и для любого языка, который не является ассемблером, на самом деле.Если вы добавляете только одну переменную, то
push()
работает просто отлично. Если вам нужно добавить другой массив, используйтеconcat()
:Concat не влияет
ar1
и,ar2
если не переназначен, например:Много большой информации здесь .
источник
How do I append to an array in JavaScript?
, но наconcat
самом деле создает в новый массив. Это важное отличие! Вместо этого я бы сказал, что ответ Omnimike, представленный ниже, на самом деле лучший: используйте Push.apply, чтобы поместить весь массив в существующий массив без создания нового.ar1 = ar1.concat(ar2);
, кar1
ar1
и добавление,ar2
а затем возвращает новый массив. Просто не указывайте часть присваивания (ar1 = ...
) из этой строки кода, и вы увидите, что оригиналar1
фактически не изменился. Если вы хотите избежать копирования, вам понадобитсяpush
. Не верьте мне, верьте документам : «Метод concat () возвращает новый массив» Первое предложение в документах дляconcat
.ar2
в любом случае выше. Результат по.push
сценарию будет= [ar1, [ar2]]
. .concat решает эту проблему, но жертвуя скоростью и создавая новый массив. Для.push
правильного использования при добавлении в массив сначала зациклите содержащийся элемент и нажмите каждый.ar2.forEach(each => { ar1.push(each); });
Некоторые быстрые сравнительные тесты (каждый тест = 500 тыс. Добавленных элементов и результаты представляют собой средние значения для нескольких прогонов) показали следующее:
Firefox 3.6 (Mac):
arr[arr.length] = b
быстрее (300 мс против 800 мс)arr.push(b)
быстрее (500 мс против 900 мс)Safari 5.0 (Mac):
arr[arr.length] = b
быстрее (90мс против 115мс)arr[arr.length] = b
быстрее (160мс против 185мс)Google Chrome 6.0 (Mac):
Мне нравится
arr.push()
синтаксис лучше, но я думаю, что сarr[arr.length]
версией мне лучше , по крайней мере, в сырой скорости. Я хотел бы видеть результаты запуска IE, хотя.Мои циклы бенчмаркинга:
источник
Я думаю, что стоит упомянуть, что push может вызываться с несколькими аргументами, которые будут добавляться в массив по порядку. Например:
В результате вы можете использовать push.apply для добавления массива в другой массив следующим образом:
Аннотированный ES5 имеет больше информации о том, что именно толчок и apply .
Обновление 2016 года: со спредом это вам больше не нужно
apply
, например:источник
Array.prototype.push.apply()
.Вы можете использовать
push
иapply
функцию для добавления двух массивов.Это добавится
array2
кarray1
. Сейчасarray1
содержит[11, 32, 75, 99, 67, 34]
. Этот код намного проще, чем написаниеfor
циклов для копирования каждого элемента массива.источник
...
оператор вместо примененияconst a1 = [] const a2 = [5,6,7] const.push(...a2)
редактирования: выделение синтаксисаarray1.concat(array2)
в этой ситуации. Призыв кpush
кажется ненужным.С новым оператором распространения ES6 объединение двух массивов
push
становится еще проще:Это добавляет содержимое
arr2
в концеarr
.Пример Babel REPL
источник
Если
arr
это массив, иval
значение, которое вы хотите добавить, используйте:Например
источник
Используйте
concat
:источник
Javascript с ECMAScript 5 стандарта , который поддерживается большинством браузеров теперь вы можете использовать
apply()
для добавленияarray1
кarray2
.Javascript со стандартом ECMAScript 6, который поддерживается Chrome и FF и IE Edge, вы можете использовать
spread
оператор:spread
Оператор заменитarray2.push(...array1);
сarray2.push(3, 4, 5);
, когда браузер думает логику.Бонусный балл
Если вы хотите создать другой переменную для хранения всех элементов из обоих массивов, вы можете сделать это:
ES5
var combinedArray = array1.concat(array2);
ES6
const combinedArray = [...array1, ...array2]
Оператор распространения (
...
) - разложить все элементы из коллекции.источник
Если вы хотите добавить два массива -
тогда вы можете использовать:
И если вы хотите добавить запись
g
в array (var a=[]
), вы можете использовать:источник
push()
Метод добавляет новые элементы в конец массива и возвращает новую длину. Пример:Точный ответ на ваш вопрос уже получен, но давайте рассмотрим некоторые другие способы добавления элементов в массив.
unshift()
Метод добавляет новые элементы в начало массива и возвращает новую длину. Пример:И, наконец,
concat()
метод используется для объединения двух или более массивов. Пример:источник
Есть несколько способов добавить массив в JavaScript:
1)
push()
метод добавляет один или несколько элементов в конец массива и возвращает новую длину массива.Вывод:
2)
unshift()
метод добавляет один или несколько элементов в начало массива и возвращает новую длину массива:Вывод:
3)
concat()
метод используется для объединения двух или более массивов. Этот метод не изменяет существующие массивы, но вместо этого возвращает новый массив.Вывод:
4) Вы можете использовать
.length
свойство массива, чтобы добавить элемент в конец массива:Вывод:
5)
splice()
метод изменяет содержимое массива путем удаления существующих элементов и / или добавления новых элементов:Вывод:
6) Вы также можете добавить новый элемент в массив, просто указав новый индекс и присвоив значение:
Вывод:
источник
push
делает: он изменяет исходный массив, помещая в него новые элементы. Я читаю это неправильно, или это должно быть отредактировано?Теперь вы можете воспользоваться синтаксисом ES6 и просто сделать:
сохраняя исходный массив неизменным.
источник
Если вы знаете самый высокий индекс (например, хранится в переменной «i»), то вы можете сделать
Однако, если вы не знаете, то вы можете использовать
как предложили другие ответы, или вы можете использовать
Обратите внимание, что массив равен нулю, поэтому .length возвращает самый высокий индекс плюс один.
Также обратите внимание, что вам не нужно добавлять в порядке, и вы можете пропустить значения, как в
В этом случае значения между ними будут иметь значение undefined.
Поэтому при циклическом просмотре JavaScript рекомендуется проверять, существует ли значение в этой точке.
Это может быть сделано следующим образом:
если вы уверены, что у вас нет нулей в массиве, то вы можете просто сделать:
Конечно, в этом случае убедитесь, что вы не используете в качестве условия myArray [i] (как некоторые люди в Интернете предлагают исходя из конца, что, как только я превысит наивысший индекс, он вернет неопределенное значение, которое оценивается как ложный)
источник
"undefined"
. Это должно прочитатьvoid 0
!"undefined"
является строкой и"undefined" !== void 0
, следовательно, ваше значениеif(myArray[i]
false, если массив по индексуi
не установлен на строку с содержимым, эквивалентным'u'+'n'+'d'+'e'+'f'+'i'+'n'+'e'+'d'
. Также обратите внимание, что вы не должны использоватьundefined
вместо этогоvoid 0
. Посколькуvoid 0
всегда является неопределенным значением, аundefined
может быть определено с помощью чего-то подобногоfunction x(undefined) { alert(undefined) } x("hello world")
, поэтому вы не можете быть уверены, что кто-то случайно установилwindow["undefined"]=1
или подобное.Добавить единственный элемент
Добавить несколько элементов
Добавить массив
источник
arrName.push('newElemenet1, newElemenet2, newElemenet3')
?arrName
было длинным1
.concat()
Конечно, можно использовать и с 2-х мерными массивами. Зацикливание не требуется.источник
Пусть свойство длины массива выполнит работу:
myarray.length возвращает количество строк в массиве. JS основан на нуле, поэтому следующим ключом элемента массива будет текущая длина массива. EX:
источник
источник
Добавить значение в массив
Поскольку Array.prototype.push добавляет один или несколько элементов в конец массива и возвращает новую длину массива , иногда нам просто нужно получить новый обновленный массив, чтобы мы могли сделать что-то вроде этого:
Или просто:
источник
Если вы используете ES6, вы можете использовать оператор спреда, чтобы сделать это.
источник
Вы можете сделать это с помощью новой функции Javascript Es 6:
источник
если вы хотите объединить 2 массива без дубликата, вы можете попробовать код ниже
Применение:
Выход: [1,2,3,4,5]
источник
Добавить один элемент
Чтобы добавить отдельный элемент в массив, используйте
push()
метод, предоставленный объектом Array:push()
мутирует исходный массив.Чтобы создать новый массив, используйте
concat()
метод Array:Обратите внимание, что на
concat()
самом деле элемент не добавляется в массив, но создается новый массив, который вы можете назначить другой переменной или переназначить исходному массиву (объявив его какlet
, поскольку вы не можете переназначить aconst
):Добавить несколько элементов
Чтобы добавить несколько элементов в массив, вы можете использовать
push()
, вызывая его с несколькими аргументами:Вы также можете использовать
concat()
метод, который вы видели ранее, передавая список элементов, разделенных запятой:или массив:
Помните, что, как описано ранее, этот метод не изменяет исходный массив, но возвращает новый массив.
источник
Вы .push () это значение в. Пример: array.push (value);
источник
Если вы хотите добавить одно значение в массив, просто используйте метод push. Это добавит новый элемент в конец массива.
Но если вы намереваетесь добавить несколько элементов, сохраните элементы в новом массиве и объедините второй массив с первым массивом ... в любом случае.
источник
У нас нет функции добавления для Array в javascript, но у нас есть push и unshift , представьте, что у вас есть массив ниже:
и нам нравится добавлять значение в этот массив, мы можем сделать, arr.push (6), и это добавит 6 в конец массива:
также мы можем использовать unshift, посмотрим, как мы можем применить это:
Они являются основными функциями для добавления или добавления новых значений в массивы.
источник
Вы можете использовать метод push.
источник
push()
добавляет новый элемент в конец массива.pop()
удаляет элемент из конца массива.Чтобы добавить объект (например, строку или число) в массив, используйте -
array.push(toAppend);
источник
Добавление элементов в массив
источник
Вы можете использовать push (), если хотите добавить значения, например
arr.push("Test1", "Test2");
Если у вас есть массив, вы можете использовать concat (), например
Array1.concat(Array2)
Если у вас есть только один элемент, который вы можете добавить, вы также можете попробовать метод длины, например
array[aray.length] = 'test';
источник