With arrays, there are usually a set number of specific things you want to achieve. Below is a list of pretty much any action you would want to perform on an array, and how to do it in Javascript. If you have any more, let me know in the comments below!
Use indexOf
:
let arr1 = [ 'potato', 'banana', 'ravioli', 'carrot' ];
// Returns 1
console.log(arr1.indexOf('banana'));
// Returns -1 since not found
console.log(arr1.indexOf('beetroot'));
Use splice()
:
let arr1 = [ 'potato', 'banana', 'ravioli', 'carrot' ];
// Returns [ 'banana', 'ravioli', 'carrot' ], since potato has index 0.
arr1.splice(0, 1);
console.log(arr1);
Use splice()
and indexOf
:
let arr1 = [ 'potato', 'banana', 'ravioli', 'carrot' ];
let itemIndex = arr1.indexOf('ravioli');
// Returns [ 'potato', 'banana', 'carrot' ], since ravioli has an index of 2
arr1.splice(itemIndex, 1);
console.log(arr1);
Use arr.length() - 1
:
let arr1 = [ 'potato', 'banana', 'ravioli', 'carrot' ];
// Returns carrot
console.log(arr1[arr1.length - 1]);
Use splice()
. You can also read about inserting at an index in detail here.
let arr1 = [ 'potato', 'banana', 'ravioli', 'carrot' ];
// Inserts broccoli at position 2, after deleting 0 items
arr1.splice(2, 0, 'broccoli');
// Returns [ 'potato', 'banana', 'ravioli', 'brccoli', 'carrot' ]
console.log(arr1);
Use pop()
:
let arr1 = [ 1, 2, 3, 4, 5, 6 ];
// Returns 6
console.log(arr1.pop());
// Returns [ 1, 2, 3, 4, 5 ] - last element is removed
console.log(arr1);
Use map()
:
let arr1 = [ 1, 2, 3, 4, 5, 6 ];
let newArr = arr1.map(function(arrElement) {
return arrElement + 3;
})
// ES6 version for modern browsers and NodeJS
let anotherVersion = arr1.map( el => el + 3);
// Returns [ 4, 5, 6, 7, 8, 9 ] for both
console.log(newArr);
console.log(anotherVersion);
Use Array.from()
:
let newSet = new Set([ 'orange', 'apple', 'potato', 'spinach' ]);
let newMap = new Map([ 'orange', 'apple', 'potato', 'spinach' ]);
let newString = 'apple';
console.log(Array.from(newSet)); // Returns [ 'orange', 'apple', 'potato', 'spinach' ]
console.log(Array.from(newMap)); // Returns [ 'orange', 'apple', 'potato', 'spinach' ]
console.log(Array.from(newString)); // Returns [ 'a', 'p', 'p', 'l', 'e' ]
Use Array.isArray()
:
let arr1 = [ 'orange', 'apple', 'potato', 'spinach' ];
let obj1 = { myKey: "myValue" }
console.log(Array.isArray(arr1)); // Returns true
console.log(Array.isArray(obj1)); // Returns false
Use forEach
:
let arr1 = [ 'orange', 'apple', 'potato', 'spinach' ];
arr1.forEach(function(item) {
console.log(item); // Returns each array item individually
});
Use ...
or concat
:
let arr1 = [ 'orange', 'apple' ];
let arr2 = [ 'potato', 'spinach' ];
// For legacy browsers (ES5);
// Returns [ 'orange', 'apple', 'potato', 'spinach' ];
let someArray = arr1.concat(object);
// For modern Javascript (ES6/NodeJS)
// Returns [ 'orange', 'apple', 'potato', 'spinach' ];
let someOtherArray = [ ...arr1, ...arr2 ];
Use Object.keys
:
let object = {
name1: "value",
name2: "value",
name3: "value"
};
// Returns [ 'name1', 'name2', 'name3' ];
let array = Object.keys(object);
Use Object.values
:
let object = {
name1: "value",
name2: "value",
name3: "value"
};
// Returns [ 'value', 'value', 'value' ];
let array = Object.values(object);
Use reverse()
:
let arr1 = [ 'potato', 'banana', 'carrot' ];
arr1.reverse();
// Returns [ 'carrot', 'banana', 'potato' ]
console.log(arr1);
Use reduce()
:
let arr1 = [ 1, 2, 3, 4, 5 ];
// For legacy browsers
let getTotal = arr1.reduce(function (accumulator, currentNumber) {
return accumulator + currentNumber
});
// ES6 for modern browsers and NodeJS
let theTotal = arr1.reduce((accumulator, currentNumber) => accumulator + currentNumber);
// Returns 15
console.log(getTotal);
Use push()
:
let arr1 = [ 'banana', 'potato' ];
arr1.push('broccoli');
// Returns [ 'banana', 'potato', 'broccoli' ]
console.log(arr1);
Use every()
let arr1 = [ 1, 2, 3, 4, 5, 6, 7 ];
// Will return true and console log 'great'
if(arr1.every(value => value < 10)) {
console.log('great!')
}
Also published here.