A brief introduction to JavaScript arrays
What is an array? How to create one? How to retrieve values from them? And more... just a short recap for beginners.
JavaScript arrays are objects, so they're not a separate type like in other languages. These objects hold a collection of elements. To create an empty array we got two ways. First, we can use the Array constructor.
const array = Array();
But the preferable method is using the array literal notation.
const array = [];
Arrays can be initialized with some values.
const array = ["🐒", "🐬", "🐅"];
console.dir(array); // Output: ["🐒", "🐬", "🐅"]
We can also achieve this with the constructor
const array = Array("🐒", "🐬", "🐅");
console.dir(array); // Output: ["🐒", "🐬", "🐅"]
But there comes a problem with this method. Let's assume that we want to create a single element array and that element would be the number 5.
const array = Array(5);
console.dir(array); // Output: [undefined, undefined, undefined, undefined, undefined]
We get an array with 5 undefined elements. To fix this we can use the Array.of() method.
const array = Array.of(5);
console.dir(array); // Output: [5]
const array = Array.of(5, 6, 7);
console.dir(array); // Output: [5, 6, 7]
Much better.
We can also fill empty arrays using the fill() method.
const array = Array(4);
array.fill(1);
console.dir(array); // Output: [1, 1, 1, 1]
We got an array with 4 empty elements so we filled them with 1. Filling can be also done only for certain indexes by passing two more arguments - start and end index.
const array = Array(4);
array.fill(1, 0, 2);
console.dir(array); // Output: [1, 1, undefined, undefined]
JavaScript has other data structures like Maps and Sets or iterable objects like String or NodeList. We can convert them to array using Array.from().
String to Array
const array = Array.from("Hello World!");
console.dir(array); // Output: ["H", "e", "l", "l", "o", " ", "W", "o", "r", "l", "d", "!"]
NodeList to Array
const nodeList = document.querySelectorAll('.element');
const array = Array.from(nodeList);
Set/Map to Array
const set = new Set();
set.add(1);
set.add(3);
const array = Array.from(set);
console.dir(array); // Output: [1, 3]
const map = new Map();
map.set('key1', 1);
map.set('key2', 2);
const array = Array.from(map);
console.dir(array); // Output: [['key1', 1], ['key2', 2]]
As you can see in the Set/Map example - JavaScript arrays can be multi-typed and multi-dimensional. So using different types in one array is possible...
const array = [1, "text", null, {}];
console.dir(array); // Output: [1, "text", null, {}]
...just like creating matrices
const matrix = [
[0, 1, 2],
[0, 3, 4],
[1, 9, 8],
];
Values from an array can be retrieved by referencing their index
const array = [1, 2, 3];
console.dir(array[1]); // Output: 2
const matrix = [
[0, 1, 2],
[0, 3, 4],
[1, 9, 8],
];
console.dir(matrix[1][2]); // Output: 4
Every array has its length which can be found under the length property.
const array = ["🐒", "🐬", "🐅"];
console.dir(array.length); // Output: 3
length is settable which means you can resize the array by changing its value.
const array = ["🐒", "🐬", "🐅"];
array.length = 5;
console.dir(array); // Output: ["🐒", "🐬", "🐅", undefined, undefined]
array.length = 1;
console.dir(array); // Output: ["🐒"]
As you can see if the new value for length is bigger than the old one, the array will extend but all of the new values are going to be undefined.