How to append something to an array?

Asked : Nov 17

Viewed : 38 times

How do I append an object (such as a string or number) to an array in JavaScript?

javascript arrays append 

Nov 17

4 Answers

Use the Array.prototype.push method to append values to the end of an array:

// initialize array
var arr = [
  "Hi",
  "Hello",
  "Bonjour"
];

// append new value to the array
arr.push("Hola");

console.log(arr);

You can use the push() function to append more than one value to an array in a single call:

// 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]);
}

Update

If you want to add the items of one array to another array, you can use firstArray.concat(secondArray):

var arr = [
  "apple",
  "banana",
  "cherry"
];

// Do not forget to assign the result as, unlike push, concat does not change the existing array
arr = arr.concat([
  "dragonfruit",
  "elderberry",
  "fig"
]);

console.log(arr);

Update

Just an addition to this answer if you want to prepend any value to the start of an array (i.e. first index) then you can use Array.prototype.unshift for this purpose.

var arr = [1, 2, 3];
arr.unshift(0);
console.log(arr);

It also supports appending multiple values at once just like push.


Update

Another way with ES6 syntax is to return a new array with the spread syntax. This leaves the original array unchanged, but returns a new array with new items appended, compliant with the spirit of functional programming.

const arr = [
  "Hi",
  "Hello",
  "Bonjour",
];

const newArr = [
  ...arr,
  "Salut",
];

console.log(newArr);

answered Jan 29


If you know the highest index (such as stored in a variable "i") then you can do

myArray[i + 1] = someValue;

However, if you don't know then you can either use

myArray.push(someValue);

as other answers suggested, or you can use

myArray[myArray.length] = someValue;

Note that the array is zero based so .length returns the highest index plus one.

Also note that you don't have to add in order and you can actually skip values, as in

myArray[myArray.length + 1000] = someValue;

In which case the values in between will have a value of undefined.

It is therefore a good practice when looping through a JavaScript to verify that a value actually exists at that point.

This can be done by something like the following:

if(myArray[i] === "undefined"){ continue; }

If you are certain that you don't have any zeros in the array then you can just do:

if(!myArray[i]){ continue; }

Of course, make sure in this case that you don't use as the condition myArray[i] (as some people over the Internet suggest based on the end that as soon as i is greater than the highest index, it will return undefined which evaluates to false).

answered Jan 29


If you want to append two arrays -

var a = ['a', 'b'];
var b = ['c', 'd'];

then you could use:

var c = a.concat(b);

And if you want to add record g to array (var a=[]) then you could use:

a.push('g');

answered Jan 29


Array#append() is an Array class method which add elements at the end of the array.

Syntax: Array.append()

Parameter: – Arrays for adding elements.
– elements to add

Return: Array after adding the elements at the end.

Example #1 :

# Ruby code for append() method
# adding elements at the end
    
# declaring array
a = [18, 22, 33, 4, 5, 6]
    
# declaring array
b = [5, 4, 22, 1, 88, 9]
    
# declaring array
c = [18, 22, 33, 40, 50, 6]
   
# appending array or element at the end of the array
puts "adding elements in a : #{a.append(b)}\n\n"
   
puts "adding elements in b : #{b.append("ratttt")}\n\n"
   
puts "adding elements in c : #{c.append(b)}\n\n"

Output :

adding elements in a : [18, 22, 33, 4, 5, 6, [5, 4, 22, 1, 88, 9]]

adding elements in b : [5, 4, 22, 1, 88, 9, "ratttt"]

adding elements in c : [18, 22, 33, 40, 50, 6, [5, 4, 22, 1, 88, 9, "ratttt"]]

answered Jan 29


Login and Submit Your Answer
Browse other questions tagged  javascript  arrays  append or ask your own question.