DEV Community

Cover image for 15 JavaScript Array Functions You Should Master as a Senior Dev
Dipak Ahirav
Dipak Ahirav

Posted on • Edited on

15 JavaScript Array Functions You Should Master as a Senior Dev

JavaScript arrays are a fundamental part of the language, and mastering the array functions it offers is essential for any senior developer. These functions allow you to handle data efficiently, write cleaner code, and implement advanced functionality with ease. In this post, we'll dive into 15 array functions that every senior developer should be well-versed in.

please subscribe to my YouTube channel to support my channel and get more web development tutorials.

1. map()

Description:

The map() function creates a new array populated with the results of calling a provided function on every element in the original array.

Why It’s Important:

map() is vital for transforming data in a functional programming style, allowing you to apply operations to each element in an array without mutating the original array.

Example:

const numbers = [1, 2, 3, 4];
const doubled = numbers.map(num => num * 2);
console.log(doubled); // [2, 4, 6, 8]
Enter fullscreen mode Exit fullscreen mode

Explanation:

In this example, map() takes each element in the numbers array, doubles it, and returns a new array with the doubled values.

2. filter()

Description:

filter() creates a new array with all elements that pass the test implemented by the provided function.

Why It’s Important:

Use filter() to extract necessary data from an array without altering the original array, which is crucial for maintaining immutability in your code.

Example:

const words = ['spray', 'limit', 'elite', 'exuberant'];
const longWords = words.filter(word => word.length > 6);
console.log(longWords); // ['exuberant']
Enter fullscreen mode Exit fullscreen mode

Explanation:

Here, filter() checks each word in the words array and returns a new array with only those words that have more than six letters.

3. reduce()

Description:

reduce() reduces an array to a single value by applying a function to each element, accumulating the result.

Why It’s Important:

reduce() is a powerful tool for performing operations that combine all elements in an array into a single output, such as summing values or constructing a new object.

Example:

const numbers = [1, 2, 3, 4];
const sum = numbers.reduce((total, num) => total + num, 0);
console.log(sum); // 10
Enter fullscreen mode Exit fullscreen mode

Explanation:

In this example, reduce() sums all the numbers in the numbers array, starting from an initial value of 0.

4. find()

Description:

find() returns the first element in an array that satisfies the provided testing function.

Why It’s Important:

find() is useful for quickly locating a specific item in an array, especially when working with objects where you need to find a particular property value.

Example:

const users = [
  { id: 1, name: 'John' },
  { id: 2, name: 'Jane' },
  { id: 3, name: 'Doe' }
];
const user = users.find(user => user.id === 2);
console.log(user); // { id: 2, name: 'Jane' }
Enter fullscreen mode Exit fullscreen mode

Explanation:

Here, find() searches through the users array and returns the first user object with an id of 2.

5. some()

Description:

some() tests whether at least one element in the array passes the provided function’s test.

Why It’s Important:

some() is useful for scenarios where you need to check if any element in an array meets a certain condition, allowing you to validate inputs or check for specific values.

Example:

const numbers = [1, 2, 3, 4, 5];
const hasEven = numbers.some(num => num % 2 === 0);
console.log(hasEven); // true
Enter fullscreen mode Exit fullscreen mode

Explanation:

In this example, some() checks if there is at least one even number in the numbers array.

6. every()

Description:

every() tests whether all elements in the array pass the provided function’s test.

Why It’s Important:

every() is crucial when you need to ensure that all elements in an array meet a specific criterion, which is particularly useful for validation checks.

Example:

const numbers = [2, 4, 6, 8];
const allEven = numbers.every(num => num % 2 === 0);
console.log(allEven); // true
Enter fullscreen mode Exit fullscreen mode

Explanation:

Here, every() checks if all the numbers in the numbers array are even.

7. forEach()

Description:

forEach() executes a provided function once for each array element.

Why It’s Important:

While forEach() is less flexible than some other methods, it’s straightforward and useful for running operations that produce side effects, such as logging or updating values.

Example:

const numbers = [1, 2, 3, 4];
numbers.forEach(num => console.log(num * 2)); // 2, 4, 6, 8
Enter fullscreen mode Exit fullscreen mode

Explanation:

In this example, forEach() doubles each number in the numbers array and logs the result to the console.

8. concat()

Description:

concat() merges two or more arrays into a new array.

Why It’s Important:

concat() is invaluable for combining datasets without altering the original arrays, preserving immutability.

Example:

const array1 = [1, 2];
const array2 = [3, 4];
const combined = array1.concat(array2);
console.log(combined); // [1, 2, 3, 4]
Enter fullscreen mode Exit fullscreen mode

Explanation:

Here, concat() combines array1 and array2 into a new array without modifying the original arrays.

9. slice()

Description:

slice() returns a shallow copy of a portion of an array into a new array.

Why It’s Important:

slice() is ideal for creating subarrays without altering the original array, making it a safe method for extracting data.

Example:

const fruits = ['apple', 'banana', 'orange', 'grape'];
const citrus = fruits.slice(2, 4);
console.log(citrus); // ['orange', 'grape']
Enter fullscreen mode Exit fullscreen mode

Explanation:

In this example, slice() extracts the elements from index 2 to 4 (excluding 4) from the fruits array.

10. splice()

Description:

splice() changes the contents of an array by removing or replacing existing elements and/or adding new elements.

Why It’s Important:

splice() is powerful for in-place edits of an array, but its mutative nature should be used with care to avoid unintended side effects.

Example:

const numbers = [1, 2, 3, 4, 5];
numbers.splice(2, 1, 99);
console.log(numbers); // [1, 2, 99, 4, 5]
Enter fullscreen mode Exit fullscreen mode

Explanation:

Here, splice() removes one element at index 2 and replaces it with 99.

11. includes()

Description:

includes() checks if an array includes a certain element, returning true or false.

Why It’s Important:

includes() is a simple yet powerful method for existence checks, making your code more readable compared to using indexOf.

Example:

const fruits = ['apple', 'banana', 'orange'];
console.log(fruits.includes('banana')); // true
Enter fullscreen mode Exit fullscreen mode

Explanation:

In this example, includes() checks if the fruits array contains the element 'banana'.

12. indexOf()

Description:

indexOf() returns the first index at which a given element can be found in the array, or -1 if it is not present.

Why It’s Important:

indexOf() is useful for finding the position of an element in an array, especially when you need the index for further operations.

Example:

const numbers = [1, 2, 3, 4];
const index = numbers.indexOf(3);
console.log(index); // 2
Enter fullscreen mode Exit fullscreen mode

Explanation:

Here, indexOf() returns the index of the first occurrence of the number 3 in the numbers array.

13. lastIndexOf()

Description:

lastIndexOf() returns the last index at which a given element can be found in the array, or -1 if it is not present.

Why It’s Important:

lastIndexOf() is similar to indexOf(), but it searches the array from the end towards the beginning, making it useful when you need to find the last occurrence of an element.

Example:

const numbers = [1, 2, 3, 4, 3];
const index = numbers.lastIndexOf(3);
console.log(index); // 4
Enter fullscreen mode Exit fullscreen mode

Explanation:

In this example, lastIndexOf() finds the last occurrence of the number 3 in the numbers array, returning the index 4.

14. join()

Description:

join() joins all elements of an array into a string, separated by a specified separator.

Why It’s Important:

join() is excellent for converting an array into a string, which is especially useful for displaying or formatting data.

Example:

const words = ['Hello', 'world'];
const sentence = words.join(' ');
console.log(sentence); // "Hello world"
Enter fullscreen mode Exit fullscreen mode

Explanation:

Here, join() concatenates the elements of the words array into a single string, with each word separated by a space.

15. reverse()

Description:

reverse() reverses the order of the elements in an array in place.

Why It’s Important:

reverse() can be useful when you need to process or display data in the opposite order, although its mutative nature requires careful use.

Example:

const numbers = [1, 2, 3];
numbers.reverse();
console.log(numbers); // [3, 2, 1]
Enter fullscreen mode Exit fullscreen mode

Explanation:

In this example, reverse() reverses the order of elements in the numbers array, modifying the original array.

Conclusion

Mastering these 15 JavaScript array functions will greatly enhance your ability to manipulate data efficiently and write clean, maintainable code. As a senior developer, having these functions in your toolkit allows you to handle complex data operations with ease, making your code more robust and scalable.


Start Your JavaScript Journey

If you're new to JavaScript or want a refresher, visit my blog on BuyMeACoffee to get started with the basics.

👉 Introduction to JavaScript: Your First Steps in Coding

Series Index

Part Title Link
1 Ditch Passwords: Add Facial Recognition to Your Website with FACEIO Read
2 Modern API Development with Node.js, Express, and TypeScript using Clean Architecture Read
3 The Ultimate Git Command Cheatsheet Read
4 Top 12 JavaScript Resources for Learning and Mastery Read
5 Angular vs. React: A Comprehensive Comparison Read
6 Top 10 JavaScript Best Practices for Writing Clean Code Read
7 Top 20 JavaScript Tricks and Tips for Every Developer 🚀 Read
8 8 Exciting New JavaScript Concepts You Need to Know Read
9 Top 7 Tips for Managing State in JavaScript Applications Read
10 🔒 Essential Node.js Security Best Practices Read
11 10 Best Practices for Optimizing Angular Performance Read
12 Top 10 React Performance Optimization Techniques Read
13 Top 15 JavaScript Projects to Boost Your Portfolio Read
14 6 Repositories To Master Node.js Read
15 Best 6 Repositories To Master Next.js Read
16 Top 5 JavaScript Libraries for Building Interactive UI Read
17 Top 3 JavaScript Concepts Every Developer Should Know Read
18 20 Ways to Improve Node.js Performance at Scale Read
19 Boost Your Node.js App Performance with Compression Middleware Read
20 Understanding Dijkstra's Algorithm: A Step-by-Step Guide Read
21 Understanding NPM and NVM: Essential Tools for Node.js Development Read

Follow and Subscribe:

Top comments (32)

Collapse
 
tracygjg profile image
Tracy Gilmore • Edited

Nice article Dipak,
For those wanting to know more on this topic, I recommend visiting the authoritative web site: MDN JavaScript Array.
I think it is also worth noting that some developers will highlight the fact that methods such as forEach perform worse than a regular for loop. However, I would argue:

  • If you want performance why are you writing JavaScript (side note, I Love JS).
  • There should be a balance in the code between performance and maintainability.

I would go further to suggest that the declarative style of forEach and map etc. is easier to read and comprehend, but that might just be me.

On the performance issue, one should ask the question "How performant does it need to be?" The usual answer for frontend is "fast enough so the user is not waiting and wondering if the browser has crashed". If the functionality really needs to be in the browser there are other options than using JS in the main thread such as Web Workers or even Web Assembly. On the backend there is no real reason (if performance really is paramount) to be using JS, there are plenty of other options.

Regards.

Collapse
 
petrulunic profile image
PetruLunic

These should know every junior

Collapse
 
alveshelio profile image
Helio Alves

Really, senior developers should know these? I think every developer should know some of them, others shouldn't be used since they mutate the array and we should instead use toSlice, toSort, etc which don't mutate the array.

Collapse
 
alexus85 profile image
Alex Petrik

sigh, just reiterating a well-known topic?

Collapse
 
richantfebriel profile image
richant febriel • Edited

thanks for the explaination, but i still confuse about splice(),

const numbers = [1, 2, 3, 4, 5];
numbers.splice(2, 1, 99);
console.log(numbers); // [1, 2, 99, 4, 5]

in splice parameter, it say '2' for index 2 which means refer to '3', and '99' parameter is refer to what number will be changed to. but '1' in parameter means to what? can someone explain me

btw, sorry for my bad english

Collapse
 
dipakahirav profile image
Dipak Ahirav • Edited

Thank you for your question! @richantfebriel

The second parameter in splice() specifies the number of elements to remove starting at the index given by the first parameter. For example:

const numbers = [1, 2, 3, 4, 5];
numbers.splice(2, 1, 99);
console.log(numbers); // [1, 2, 99, 4, 5]
Enter fullscreen mode Exit fullscreen mode

Here, 1 means remove one element (which is 3). If you change 1 to 2:

const numbers = [1, 2, 3, 4, 5];
numbers.splice(2, 2, 99);
console.log(numbers); // [1, 2, 99, 5]
Enter fullscreen mode Exit fullscreen mode

This removes two elements (3 and 4), and then inserts 99.

I hope this clears up the confusion!

Collapse
 
richantfebriel profile image
richant febriel

thanks for the explanation, easy to understand!

Thread Thread
 
dipakahirav profile image
Dipak Ahirav

your welcome

Collapse
 
allen_gclarke profile image
Allen G. Clarke

Calling it array methods would be okay

Collapse
 
petrfischer profile image
Petr Fischer

Eh... So... In short: every developer should read the javascript documentation for Array and Hash... Surprising! What an article!

Collapse
 
dipakahirav profile image
Dipak Ahirav

Thanks @petrfischer

Collapse
 
androosk profile image
Andrew Tirpok

Nice refresher! Sometimes I forget some of these exist. Also, for...of is useful as well.

Collapse
 
kocreative profile image
Kat

Thanks for the list - certainly some things for me to try here!

Collapse
 
roshan_khan_28 profile image
roshan khan

thanks for the share. this list will help me immensely!

Some comments may only be visible to logged-in visitors. Sign in to view all comments. Some comments have been hidden by the post's author - find out more