Javascript Arrays

JavaScript arrays are used to store multiple values in a single variable. If you have a list of names, storing the names in single variables look like this.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
var name1 = "Folau";
var name2 = "Kinga";
var name3 = "Laulau";
var name4 = "Tonga";
var name5 = "Isi";
var name1 = "Folau"; var name2 = "Kinga"; var name3 = "Laulau"; var name4 = "Tonga"; var name5 = "Isi";
var name1 = "Folau";
var name2 = "Kinga";
var name3 = "Laulau";
var name4 = "Tonga";
var name5 = "Isi";

However, what if you want to loop through the names and find a specific one? And what if you had 1000 names instead of 5 names?

The solution to this problem is arrays. An array can hold many values under a single name, and you can access the values by referring to an index number.

Array Declaration

You can use new Array or [].

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
let names = new Array('John','Peter','James');
let numbers = [1,2,3,4,5];
let names = new Array('John','Peter','James'); let numbers = [1,2,3,4,5];
let names = new Array('John','Peter','James');
let numbers = [1,2,3,4,5];

Access elements on Arrays

You access an array element by referring to the index number starting from 0.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
let scores = new Array(12,34,56,100);
let highScore = scores[3];
console.log("highScore: "+highScore);//100
let scores = new Array(12,34,56,100); let highScore = scores[3]; console.log("highScore: "+highScore);//100
let scores = new Array(12,34,56,100);
let highScore = scores[3];
console.log("highScore: "+highScore);//100

Update element of an array

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
let scores = new Array(12,34,56,100);
scores[3] = 505;
let highScore = scores[3];
console.log("highScore: "+highScore);//505
let scores = new Array(12,34,56,100); scores[3] = 505; let highScore = scores[3]; console.log("highScore: "+highScore);//505
let scores = new Array(12,34,56,100); 
scores[3] = 505; 
let highScore = scores[3];
console.log("highScore: "+highScore);//505

Array size

The length property of an array returns the length of an array (the number of array elements).

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
let scores = new Array(12,34,56,100);
console.log("scores.length: "+scores.length);//4
let scores = new Array(12,34,56,100); console.log("scores.length: "+scores.length);//4
let scores = new Array(12,34,56,100);
console.log("scores.length: "+scores.length);//4

Add elements to an array

The easiest way to add a new element to an array is using the push() method. The push() method adds elements to the end of the array.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
let names = ['John','Peter','James'];
console.log("names");
console.log(names);["John", "Peter", "James"]
names.push('Juan');
console.log("names");
console.log(names);["John", "Peter", "James","Juan"]
let names = ['John','Peter','James']; console.log("names"); console.log(names);["John", "Peter", "James"] names.push('Juan'); console.log("names"); console.log(names);["John", "Peter", "James","Juan"]
let names = ['John','Peter','James'];
console.log("names");
console.log(names);["John", "Peter", "James"]
names.push('Juan');

console.log("names");
console.log(names);["John", "Peter", "James","Juan"]

Use the unshift method to add elements to the beginning of the array.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
let names = ['John','Peter','James'];
console.log("names");
console.log(names);["John", "Peter", "James"]
names.unshift('Juan');
console.log("names");
console.log(names);["Juan","John", "Peter", "James"]
let names = ['John','Peter','James']; console.log("names"); console.log(names);["John", "Peter", "James"] names.unshift('Juan'); console.log("names"); console.log(names);["Juan","John", "Peter", "James"]
let names = ['John','Peter','James']; 
console.log("names"); 
console.log(names);["John", "Peter", "James"] 

names.unshift('Juan'); 
console.log("names"); 
console.log(names);["Juan","John", "Peter", "James"]

Use the splice method can be used to add new items to an array.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
let names = ['John','Peter','James'];
console.log("names");
console.log(names);//['John','Peter','James']
names.splice(2, 0, "Folau");
console.log("names");
console.log(names);//['John','Peter','Folau','James']
let names = ['John','Peter','James']; console.log("names"); console.log(names);//['John','Peter','James'] names.splice(2, 0, "Folau"); console.log("names"); console.log(names);//['John','Peter','Folau','James']
let names = ['John','Peter','James'];
console.log("names");
console.log(names);//['John','Peter','James']

names.splice(2, 0, "Folau");
console.log("names");
console.log(names);//['John','Peter','Folau','James']

 

Remove elements from an array

Use the pop() method which removes elements from the end of the array.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
let names = ['John','Peter','James'];
console.log("names");
console.log(names);//['John','Peter','James']
names.pop();
console.log("names");
console.log(names);//['John','Peter']
let names = ['John','Peter','James']; console.log("names"); console.log(names);//['John','Peter','James'] names.pop(); console.log("names"); console.log(names);//['John','Peter']
let names = ['John','Peter','James'];
console.log("names");
console.log(names);//['John','Peter','James']

names.pop();
console.log("names");
console.log(names);//['John','Peter']

Use the shift() method to remove elements from the beginning of the array.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
let names = ['John','Peter','James'];
console.log("names");
console.log(names);//['John','Peter','James']
names.shift();
console.log("names");
console.log(names);//['Peter','James']
let names = ['John','Peter','James']; console.log("names"); console.log(names);//['John','Peter','James'] names.shift(); console.log("names"); console.log(names);//['Peter','James']
let names = ['John','Peter','James']; 
console.log("names"); 
console.log(names);//['John','Peter','James'] 

names.shift(); 
console.log("names"); 
console.log(names);//['Peter','James']

Note: methods push/pop run fast, while shift/unshift are slow.

Difference between Arrays and Objects.

Arrays use numbered indexes.  Objects use named indexes.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
let arr = ["Peter",25];
console.log("arr[0]: "+arr[0]);//Peter
console.log("arr[1]: "+arr[1]);//25
let obj = {"name":"Peter","age":"25"};
console.log("obj.name: "+obj.name);//Peter
let arr = ["Peter",25]; console.log("arr[0]: "+arr[0]);//Peter console.log("arr[1]: "+arr[1]);//25 let obj = {"name":"Peter","age":"25"}; console.log("obj.name: "+obj.name);//Peter
let arr = ["Peter",25];
console.log("arr[0]: "+arr[0]);//Peter
console.log("arr[1]: "+arr[1]);//25

let obj = {"name":"Peter","age":"25"};
console.log("obj.name: "+obj.name);//Peter

Sorting

By default, the sort() function sorts values as strings.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
let names = ['John','Peter','James'];
console.log("names");
console.log(names);
names.sort();
console.log("names");
console.log(names);//["James", "John", "Peter"]
let names = ['John','Peter','James']; console.log("names"); console.log(names); names.sort(); console.log("names"); console.log(names);//["James", "John", "Peter"]
let names = ['John','Peter','James'];

console.log("names");
console.log(names);

names.sort();
console.log("names");
console.log(names);//["James", "John", "Peter"]

Sorting numbers using a comparator

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
var numbers = [40, 100, 1, 5, 25, 10];
numbers.sort(function(a, b){return a - b});// asc order - 1,5,10,25,40,100
numbers.sort(function(a, b){return b - a});// desc order - 100,40,25,10,5,1
var numbers = [40, 100, 1, 5, 25, 10]; numbers.sort(function(a, b){return a - b});// asc order - 1,5,10,25,40,100 numbers.sort(function(a, b){return b - a});// desc order - 100,40,25,10,5,1
var numbers = [40, 100, 1, 5, 25, 10];
numbers.sort(function(a, b){return a - b});// asc order - 1,5,10,25,40,100
numbers.sort(function(a, b){return b - a});// desc order - 100,40,25,10,5,1

Array Iteration

The foreach() method calls a function (a callback function) once for each array element.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
/*
* Array iteration
*/
console.log("Array Iteration with foreach");
var numbers = [2, 4, 6, 8 , 10];
// value
numbers.forEach(function(number){
console.log("number: "+number);
});
// value, index
numbers.forEach(function(number,index){
console.log("number: "+number+", index: "+index);
});
// value, index, array
numbers.forEach(function(number,index, arr){
console.log("number: "+number+", index: "+index+", original array: "+arr);
});
/* * Array iteration */ console.log("Array Iteration with foreach"); var numbers = [2, 4, 6, 8 , 10]; // value numbers.forEach(function(number){ console.log("number: "+number); }); // value, index numbers.forEach(function(number,index){ console.log("number: "+number+", index: "+index); }); // value, index, array numbers.forEach(function(number,index, arr){ console.log("number: "+number+", index: "+index+", original array: "+arr); });
/*
* Array iteration
*/
console.log("Array Iteration with foreach");
var numbers = [2, 4, 6, 8 , 10];

// value
numbers.forEach(function(number){
    console.log("number: "+number);
});
// value, index
numbers.forEach(function(number,index){
    console.log("number: "+number+", index: "+index);
});
// value, index, array
numbers.forEach(function(number,index, arr){
    console.log("number: "+number+", index: "+index+", original array: "+arr);
});

Using for loop to iterate through array elements.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
/*
* Array iteration
*/
var numbers = [2, 4, 6, 8 , 10];
console.log("Array Iteration with for loop");
for(let i=0;i<numbers.length;i++){
let number = numbers[i];
console.log("index: "+i+", number: "+number);
}
/* * Array iteration */ var numbers = [2, 4, 6, 8 , 10]; console.log("Array Iteration with for loop"); for(let i=0;i<numbers.length;i++){ let number = numbers[i]; console.log("index: "+i+", number: "+number); }
/*
* Array iteration
*/
var numbers = [2, 4, 6, 8 , 10];

console.log("Array Iteration with for loop");
for(let i=0;i<numbers.length;i++){
    let number = numbers[i];
    console.log("index: "+i+", number: "+number);
}

Array map

The map() method creates a new array by performing a function on each array element. The map() method does not execute the function for array elements without values. The map() method does not change the original array.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
console.log("Array map");
var numbers2 = numbers.map(function(number){
console.log("number: "+number);
return number * 2;
});
console.log(numbers);
console.log("numbers2 * 2");
console.log(numbers2);
var numbers3 = numbers.map(function(number, index){
console.log("number: "+number+", index: "+index);
return number * 3;
});
console.log(numbers);
console.log("numbers3 * 3");
console.log(numbers3);
var numbers4 = numbers.map(function(number, index, arr){
console.log("number: "+number+", index: "+index+", original array: "+arr);
return number * 4;
});
console.log(numbers);
console.log("numbers4 * 4");
console.log(numbers4);
console.log("Array map"); var numbers2 = numbers.map(function(number){ console.log("number: "+number); return number * 2; }); console.log(numbers); console.log("numbers2 * 2"); console.log(numbers2); var numbers3 = numbers.map(function(number, index){ console.log("number: "+number+", index: "+index); return number * 3; }); console.log(numbers); console.log("numbers3 * 3"); console.log(numbers3); var numbers4 = numbers.map(function(number, index, arr){ console.log("number: "+number+", index: "+index+", original array: "+arr); return number * 4; }); console.log(numbers); console.log("numbers4 * 4"); console.log(numbers4);
console.log("Array map");
var numbers2 = numbers.map(function(number){
    console.log("number: "+number);
    return number * 2;
});
console.log(numbers);
console.log("numbers2 * 2");
console.log(numbers2);

var numbers3 = numbers.map(function(number, index){
    console.log("number: "+number+", index: "+index);
    return number * 3;
});
console.log(numbers);
console.log("numbers3 * 3");
console.log(numbers3);

var numbers4 = numbers.map(function(number, index, arr){
    console.log("number: "+number+", index: "+index+", original array: "+arr);
    return number * 4;
});
console.log(numbers);
console.log("numbers4 * 4");
console.log(numbers4);

Output

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
number: 2
number: 4
number: 6
number: 8
number: 10
numbers - (5) [2, 4, 6, 8, 10]
numbers2 * 2
numbers2 - (5) [4, 8, 12, 16, 20]
number: 2, index: 0
number: 4, index: 1
number: 6, index: 2
number: 8, index: 3
number: 10, index: 4
numbers - (5) [2, 4, 6, 8, 10]
numbers3 * 3
numbers3 - (5) [6, 12, 18, 24, 30]
number: 2, index: 0, original array: 2,4,6,8,10
number: 4, index: 1, original array: 2,4,6,8,10
number: 6, index: 2, original array: 2,4,6,8,10
number: 8, index: 3, original array: 2,4,6,8,10
number: 10, index: 4, original array: 2,4,6,8,10
numbers - (5) [2, 4, 6, 8, 10]
numbers4 * 4
numbers4 - (5) [8, 16, 24, 32, 40]
number: 2 number: 4 number: 6 number: 8 number: 10 numbers - (5) [2, 4, 6, 8, 10] numbers2 * 2 numbers2 - (5) [4, 8, 12, 16, 20] number: 2, index: 0 number: 4, index: 1 number: 6, index: 2 number: 8, index: 3 number: 10, index: 4 numbers - (5) [2, 4, 6, 8, 10] numbers3 * 3 numbers3 - (5) [6, 12, 18, 24, 30] number: 2, index: 0, original array: 2,4,6,8,10 number: 4, index: 1, original array: 2,4,6,8,10 number: 6, index: 2, original array: 2,4,6,8,10 number: 8, index: 3, original array: 2,4,6,8,10 number: 10, index: 4, original array: 2,4,6,8,10 numbers - (5) [2, 4, 6, 8, 10] numbers4 * 4 numbers4 - (5) [8, 16, 24, 32, 40]
number: 2
number: 4
number: 6
number: 8
number: 10
numbers - (5) [2, 4, 6, 8, 10]
numbers2 * 2
numbers2 - (5) [4, 8, 12, 16, 20]
number: 2, index: 0
number: 4, index: 1
number: 6, index: 2
number: 8, index: 3
number: 10, index: 4
numbers - (5) [2, 4, 6, 8, 10]
numbers3 * 3
numbers3 - (5) [6, 12, 18, 24, 30]
number: 2, index: 0, original array: 2,4,6,8,10
number: 4, index: 1, original array: 2,4,6,8,10
number: 6, index: 2, original array: 2,4,6,8,10
number: 8, index: 3, original array: 2,4,6,8,10
number: 10, index: 4, original array: 2,4,6,8,10
numbers - (5) [2, 4, 6, 8, 10]
numbers4 * 4
numbers4 - (5) [8, 16, 24, 32, 40]

Array filter

The filter() method creates a new array with array elements that passes a condition.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
console.log("Array filter");
var over8 = numbers.filter(function(number, index){
console.log("number: "+number+", index: "+index);
return number >= 8;
});
console.log("numbers: "+numbers);
console.log("numbers greater than or equal 8");
console.log(over8);//[8, 10]
var over4 = numbers.filter(function(number, index, arr){
console.log("number: "+number+", index: "+index+", original array: "+arr);
return number >= 4;
});
console.log("numbers: "+numbers);
console.log("numbers greater than or equal 4");
console.log(over4);//[4, 6, 8, 10]
console.log("Array filter"); var over8 = numbers.filter(function(number, index){ console.log("number: "+number+", index: "+index); return number >= 8; }); console.log("numbers: "+numbers); console.log("numbers greater than or equal 8"); console.log(over8);//[8, 10] var over4 = numbers.filter(function(number, index, arr){ console.log("number: "+number+", index: "+index+", original array: "+arr); return number >= 4; }); console.log("numbers: "+numbers); console.log("numbers greater than or equal 4"); console.log(over4);//[4, 6, 8, 10]
console.log("Array filter");
var over8 = numbers.filter(function(number, index){
    console.log("number: "+number+", index: "+index);
    return number >= 8;
});
console.log("numbers: "+numbers);
console.log("numbers greater than or equal 8");
console.log(over8);//[8, 10]

var over4 = numbers.filter(function(number, index, arr){
    console.log("number: "+number+", index: "+index+", original array: "+arr);
    return number >= 4;
});
console.log("numbers: "+numbers);
console.log("numbers greater than or equal 4");
console.log(over4);//[4, 6, 8, 10]

Array reduce

The reduce() method runs a function on each array element to produce (reduce it to) a single value. The reduce() method works from left-to-right in the array. Note that the reduce() method does not reduce the original array.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
console.log("Array reduce");
var numbers = [2, 4, 6, 8 , 10];
var sum = numbers.reduce(function(total, number, index, arr){
console.log("total: "+total+", number: "+number+", index: "+index+", arr: "+arr);
return total + number;
});
console.log("numbers: "+numbers);
console.log("sum of numbers: "+sum);// 30
console.log("Array reduce"); var numbers = [2, 4, 6, 8 , 10]; var sum = numbers.reduce(function(total, number, index, arr){ console.log("total: "+total+", number: "+number+", index: "+index+", arr: "+arr); return total + number; }); console.log("numbers: "+numbers); console.log("sum of numbers: "+sum);// 30
console.log("Array reduce");
var numbers = [2, 4, 6, 8 , 10];
var sum = numbers.reduce(function(total, number, index, arr){
    console.log("total: "+total+", number: "+number+", index: "+index+", arr: "+arr);
    return total + number;
});

console.log("numbers: "+numbers);
console.log("sum of numbers: "+sum);// 30

Array every

The every() method check if all array values pass a condition.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
console.log("Array every");
var numbers = [2, 4, 6, 8 , 10];
var allOver2 = numbers.every(function(number,index){
console.log("number: "+number+", index: "+index);
return number >=2;
});
console.log("allOver2: "+allOver2);// true
var allOver4 = numbers.every(function(number,index,arr){
console.log("number: "+number+", index: "+index+", original array: "+arr);
return number >=4;
});
console.log("allOver4: "+allOver4);// false
console.log("Array every"); var numbers = [2, 4, 6, 8 , 10]; var allOver2 = numbers.every(function(number,index){ console.log("number: "+number+", index: "+index); return number >=2; }); console.log("allOver2: "+allOver2);// true var allOver4 = numbers.every(function(number,index,arr){ console.log("number: "+number+", index: "+index+", original array: "+arr); return number >=4; }); console.log("allOver4: "+allOver4);// false
console.log("Array every");
var numbers = [2, 4, 6, 8 , 10];
var allOver2 = numbers.every(function(number,index){
    console.log("number: "+number+", index: "+index);
    return number >=2;
});
console.log("allOver2: "+allOver2);// true

var allOver4 = numbers.every(function(number,index,arr){
    console.log("number: "+number+", index: "+index+", original array: "+arr);
    return number >=4;
});
console.log("allOver4: "+allOver4);// false

Array some

The some() method check if some array values pass a condition.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
console.log("Array some");
var numbers = [2, 4, 6, 8 , 10];
var someOver2 = numbers.some(function(number,index){
console.log("number: "+number+", index: "+index);
return number >=2;
});
console.log("someOver2: "+someOver2);// true
var someOver4 = numbers.some(function(number,index,arr){
console.log("number: "+number+", index: "+index+", original array: "+arr);
return number >=4;
});
console.log("someOver4: "+someOver4);// true
console.log("Array some"); var numbers = [2, 4, 6, 8 , 10]; var someOver2 = numbers.some(function(number,index){ console.log("number: "+number+", index: "+index); return number >=2; }); console.log("someOver2: "+someOver2);// true var someOver4 = numbers.some(function(number,index,arr){ console.log("number: "+number+", index: "+index+", original array: "+arr); return number >=4; }); console.log("someOver4: "+someOver4);// true
console.log("Array some");
var numbers = [2, 4, 6, 8 , 10];
var someOver2 = numbers.some(function(number,index){
    console.log("number: "+number+", index: "+index);
    return number >=2;
});
console.log("someOver2: "+someOver2);// true
var someOver4 = numbers.some(function(number,index,arr){
    console.log("number: "+number+", index: "+index+", original array: "+arr);
    return number >=4;
});
console.log("someOver4: "+someOver4);// true

Array indexOf

The indexOf() method searches an array for an element value and returns its position. Note: The first item has position 0, the second item has position 1, and so on.
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
console.log("Array indexOf");
let names = ['John','James','Fika','Peter'];
var peterIndex = names.indexOf("Peter");
console.log("peterIndex: "+peterIndex);// 3
console.log("Array indexOf"); let names = ['John','James','Fika','Peter']; var peterIndex = names.indexOf("Peter"); console.log("peterIndex: "+peterIndex);// 3
console.log("Array indexOf");
let names = ['John','James','Fika','Peter'];
var peterIndex = names.indexOf("Peter");
console.log("peterIndex: "+peterIndex);// 3

Array find

The find() method returns the value of the first array element that passes a condition function.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
console.log("Array find");
var numbers = [2, 4, 6, 8 , 10];
var first3 = numbers.find(function(number, index, arr){
return number > 3;
});
console.log("first3: "+first3);// 4
console.log("Array find"); var numbers = [2, 4, 6, 8 , 10]; var first3 = numbers.find(function(number, index, arr){ return number > 3; }); console.log("first3: "+first3);// 4
console.log("Array find");
var numbers = [2, 4, 6, 8 , 10];
var first3 = numbers.find(function(number, index, arr){
    return number > 3;
});
console.log("first3: "+first3);// 4

 

Source code on Github




Subscribe To Our Newsletter
You will receive our latest post and tutorial.
Thank you for subscribing!

required
required


Leave a Reply

Your email address will not be published. Required fields are marked *