Introduction
JavaScript arrays are versatile data structures that store a collection of elements. They come with a range of built-in methods for performing operations like searching, sorting, iterating, transforming, and more. Understanding these methods is crucial for efficient JavaScript programming.
In this lesson, we’ll continue to explore array methods in detail, discussing their purposes, use cases, and providing code examples.
There are many different array methods one should be aware of, however some are used more than others. The map
, filter
, reduce
and find
are very often used so pay special attention to them.
Note: You have covered a small number of these methods, however we will cover them again to refresh your memory.
Array Methods
push()
Description
The push()
method adds one or more elements to the end of an array and returns the new length of the array.
Use Cases
- Adding new elements to an array.
- Dynamically constructing an array.
Basic Code Example
let fruits = ['Apple', 'Banana'];
fruits.push('Orange');
console.log(fruits); // ['Apple', 'Banana', 'Orange']
Practical Code Example
// Creating a list of tasks
let tasks = ['Wash car', 'Buy groceries'];
tasks.push('Read a book');
console.log(tasks); // ['Wash car', 'Buy groceries', 'Read a book']
pop()
Description
The pop()
method removes the last element from an array and returns that element. This method changes the length of the array.
Use Cases
- Removing the last item from an array.
- Implementing stack-like behavior.
Basic Code Example
let numbers = [1, 2, 3];
let last = numbers.pop();
console.log(last); // 3
console.log(numbers); // [1, 2]
Practical Code Example
// Managing a stack of books
let books = ['1984', 'Brave New World', 'Fahrenheit 451'];
let lastBook = books.pop();
console.log(`Last read: ${lastBook}`); // Last read: Fahrenheit 451
shift()
Description
The shift()
method removes the first element from an array and returns that removed element. This method changes the length of the array.
Use Cases
- Removing the first item from an array.
- Implementing queue-like behavior.
Basic Code Example
let myArray = [1, 2, 3];
let first = myArray.shift();
console.log(first); // 1
console.log(myArray); // [2, 3]
Practical Code Example
// Processing a queue of orders
let orders = ['Order 1', 'Order 2', 'Order 3'];
let currentOrder = orders.shift();
console.log(`Processing: ${currentOrder}`); // Processing: Order 1
unshift()
Description
The unshift()
method adds one or more elements to the beginning of an array and returns the new length of the array.
Use Cases
- Adding elements to the start of an array.
- Prepending items in a list.
Basic Code Example
let numbers = [2, 3, 4];
numbers.unshift(1);
console.log(numbers); // [1, 2, 3, 4]
Practical Code Example
// Adding new notifications to a list
let notifications = ['Message from John', 'New follower'];
notifications.unshift('Reminder: Meeting at 3 PM');
console.log(notifications);
// ['Reminder: Meeting at 3 PM', 'Message from John', 'New follower']
slice()
Description
The slice()
method returns a shallow copy of a portion of an array into a new array object selected from start to end (end not included). The original array will not be modified.
Use Cases
- Creating a copy of part of an array.
- Extracting specific elements from an array.
Basic Code Example
let numbers = [1, 2, 3, 4, 5];
let slicedNumbers = numbers.slice(1, 4);
console.log(slicedNumbers); // [2, 3, 4]
Practical Code Example
// Extracting a section of a task list
let tasks = ['Email client', 'Write report', 'Attend meeting', 'Call supplier'];
let morningTasks = tasks.slice(0, 2);
console.log(morningTasks); // ['Email client', 'Write report']
splice()
Description
The splice()
method changes the contents of an array by removing or replacing existing elements and/or adding new elements in place.
Use Cases
- Removing elements from an array.
- Replacing elements in an array.
- Adding new elements at a specific position in an array.
Basic Code Example
let fruits = ['Apple', 'Banana', 'Mango', 'Orange'];
fruits.splice(2, 1, 'Pineapple');
console.log(fruits); // ['Apple', 'Banana', 'Pineapple', 'Orange']
Practical Code Example
// Updating a meeting schedule
let meetings = ['9 AM Project Discussion', '1 PM Client Call'];
meetings.splice(1, 0, '11 AM Team Briefing');
console.log(meetings);
// ['9 AM Project Discussion', '11 AM Team Briefing', '1 PM Client Call']
forEach()
Description
The forEach()
method executes a provided function once for each array element.
Use Cases
- Executing a function on each element of an array.
- Iterating through elements in an array.
Basic Code Example
let numbers = [1, 2, 3, 4, 5];
numbers.forEach((number) => console.log(number * 2));
// Output: 2, 4, 6, 8, 10
Practical Code Example
// Logging out a list of tasks
let tasks = ['Check emails', 'Write report', 'Attend meeting'];
tasks.forEach((task) => console.log(`Task: ${task}`));
// Output: Task: Check emails, Task: Write report, Task: Attend meeting
map()
Description
The map()
method creates a new array populated with the results of calling a provided function on every element in the calling array.
Use Cases
- Transforming the elements of an array.
- Creating a new array based on the elements of an existing array.
Basic Code Example
let numbers = [1, 2, 3, 4, 5];
let squaredNumbers = numbers.map((number) => number * number);
console.log(squaredNumbers); // [1, 4, 9, 16, 25]
Practical Code Example
// Creating a list of URLs from product IDs
let productIds = [101, 102, 103];
let productUrls = productIds.map((id) => `https://example.com/product/${id}`);
console.log(productUrls);
// ['https://example.com/product/101', 'https://example.com/product/102', 'https://example.com/product/103']
filter()
Description
The filter()
method creates a new array with all elements that pass the test implemented by the provided function.
Use Cases
- Filtering an array based on a condition.
- Extracting elements from an array that meet certain criteria.
Basic Code Example
let numbers = [1, 2, 3, 4, 5];
let evenNumbers = numbers.filter((number) => number % 2 === 0);
console.log(evenNumbers); // [2, 4]
Practical Code Example
// Filtering a list of tasks for high priority ones
let tasks = [
{ title: 'Email client', priority: 'High' },
{ title: 'Write report', priority: 'Low' },
{ title: 'Attend meeting', priority: 'High' }
];
let highPriorityTasks = tasks.filter((task) => task.priority === 'High');
console.log(highPriorityTasks);
// [{ title: 'Email client', priority: 'High' }, { title: 'Attend meeting', priority: 'High' }]
reduce()
Description
The reduce()
method executes a reducer function on each element of the array, resulting in a single output value.
Use Cases
- Summing up all elements in an array.
- Accumulating values from an array.
Basic Code Example
let numbers = [1, 2, 3, 4, 5];
let sum = numbers.reduce((total, current) => total + current, 0);
console.log(sum); // 15
Practical Code Example
// Calculating the total cost of products
let products = [
{ name: 'Book', price: 12 },
{ name: 'Pen', price: 1 },
{ name: 'Bag', price: 20 }
];
let totalCost = products.reduce((total, product) => total + product.price, 0);
console.log(`Total cost: ${totalCost}`); // Total cost: 33
find()
Description
The find()
method returns the value of the first element in the provided array that satisfies the provided testing function.
Use Cases
- Finding an element in the array that meets a condition.
- Retrieving a specific item from an array based on a criterion.
Basic Code Example
let numbers = [4, 9, 16, 25];
let firstSquareGreaterThan15 = numbers.find((number) => number > 15);
console.log(firstSquareGreaterThan15); // 16
Practical Code Example
// Finding the first high priority task
let tasks = [
{ title: 'Email client', priority: 'Low' },
{ title: 'Write report', priority: 'High' },
{ title: 'Attend meeting', priority: 'Medium' }
];
let highPriorityTask = tasks.find((task) => task.priority === 'High');
console.log(highPriorityTask); // { title: 'Write report', priority: 'High' }
findIndex()
Description
The findIndex()
method returns the index of the first element in the array that satisfies the provided testing function. If no elements satisfy the testing function, -1 is returned.
Use Cases
- Finding the index of an element in an array that meets a certain condition.
- Useful for locating the position of items in an array when their values are objects or more complex than simple strings or numbers.
Basic Code Example
let numbers = [5, 12, 8, 130, 44];
let firstLargeNumberIndex = numbers.findIndex((number) => number > 15);
console.log(firstLargeNumberIndex); // 3
Practical Code Example
// Finding the index of a task with high priority
let tasks = [
{ title: 'Task 1', priority: 'low' },
{ title: 'Task 2', priority: 'high' }
];
let highPriorityIndex = tasks.findIndex((task) => task.priority === 'high');
console.log(`Index of high priority task: ${highPriorityIndex}`); // Index of high priority task: 1
indexOf()
Description
The indexOf()
method returns the first index at which a given element can be found in the array, or -1 if it is not present.
Use Cases
- Finding the index of an element in an array.
- Checking if an element exists in an array.
Basic Code Example
let fruits = ['Apple', 'Banana', 'Orange'];
let indexOfBanana = fruits.indexOf('Banana');
console.log(indexOfBanana); // 1
Practical Code Example
// Identifying the position of a specific task
let tasks = ['Email client', 'Write report', 'Attend meeting'];
let reportIndex = tasks.indexOf('Write report');
console.log(`'Write report' task position: ${reportIndex}`); // 'Write report' task position: 1
includes()
Description
The includes()
method determines whether an array includes a certain value among its entries, returning true
or false
as appropriate.
Use Cases
- Checking for the presence of an item in an array.
- Conditional logic based on whether an array contains a certain value.
Basic Code Example
let fruits = ['Apple', 'Banana', 'Orange'];
let hasApple = fruits.includes('Apple');
console.log(hasApple); // true
Practical Code Example
// Checking if a user has a specific permission
let permissions = ['read', 'write', 'edit'];
let canDelete = permissions.includes('delete');
console.log(`User can delete: ${canDelete}`); // User can delete: false
join()
Description
The join()
method creates and returns a new string by concatenating all of the elements in an array, separated by commas or a specified separator string.
Use Cases
- Combining array elements into a single string.
- Creating a string from array values with custom separators.
Basic Code Example
let elements = ['Fire', 'Air', 'Water'];
let combined = elements.join();
console.log(combined); // 'Fire,Air,Water'
Practical Code Example
// Generating a CSV line from an array of values
let productDetails = ['Pen', '1.50', 'Stationery'];
let csvLine = productDetails.join(',');
console.log(csvLine); // 'Pen,1.50,Stationery'
sort()
Description
The sort()
method sorts the elements of an array in place and returns the sorted array. The default sort order is ascending, built upon converting the elements into strings and comparing their sequences of UTF-16 code units values.
Use Cases
- Sorting the elements of an array.
- Ordering data in a specific sequence (e.g., alphabetical, numerical).
Basic Code Example
let numbers = [4, 2, 5, 1, 3];
numbers.sort();
console.log(numbers); // [1, 2, 3, 4, 5]
Practical Code Example
// Sorting a list of names alphabetically
let names = ['Olivia', 'Liam', 'Emma', 'Noah'];
names.sort();
console.log(names); // ['Emma', 'Liam', 'Noah', 'Olivia']
reverse()
Description
The reverse()
method reverses an array in place. The first array element becomes the last, and the last array element becomes the first.
Use Cases
- Reversing the order of elements in an array.
- Implementing operations that require elements in the reverse order.
Basic Code Example
let numbers = [1, 2, 3, 4, 5];
numbers.reverse();
console.log(numbers); // [5, 4, 3, 2, 1]
Practical Code Example
// Displaying a list of messages in reverse chronological order
let messages = ['Message 1', 'Message 2', 'Message 3'];
messages.reverse();
console.log(messages); // ['Message 3', 'Message 2', 'Message 1']
every()
Description
The every()
method tests whether all elements in the array pass the test implemented by the provided function. It returns a Boolean value.
Use Cases
- Checking if every element in an array meets a certain condition.
- Validating data in an array against a specific criterion.
Basic Code Example
let numbers = [2, 4, 6, 8, 10];
let allEven = numbers.every((number) => number % 2 === 0);
console.log(allEven); // true
Practical Code Example
// Verifying if all products are in stock
let products = [
{ name: 'Pen', inStock: true },
{ name: 'Book', inStock: true },
{ name: 'Bag', inStock: false }
];
let allInStock = products.every((product) => product.inStock);
console.log(`All products in stock: ${allInStock}`); // All products in stock: false
some()
Description
The some()
method tests whether at least one element in the array passes the test implemented by the provided function. It returns a Boolean value.
Use Cases
- Checking if any element in an array meets a certain condition.
- Determining if there is at least one qualifying element in an array.
Basic Code Example
let numbers = [1, 3, 5, 7, 8];
let hasEven = numbers.some((number) => number % 2 === 0);
console.log(hasEven); // true
Practical Code Example
// Checking if any tasks are marked as urgent
let tasks = [
{ title: 'Email client', urgent: false },
{ title: 'Write report', urgent: true }
];
let hasUrgentTask = tasks.some((task) => task.urgent);
console.log(`Has urgent tasks: ${hasUrgentTask}`); // Has urgent tasks: true
flatMap()
Description
The flatMap()
method first maps each element using a mapping function, then flattens the result into a new array. It is identical to a map followed by a flat of depth 1.
Use Cases
- Applying a function to each element and flattening the result.
- Combining mapping and flattening operations for efficiency.
Basic Code Example
let arrays = [
[1, 2],
[3, 4],
[5, 6]
];
let flatMapped = arrays.flatMap((numbers) => numbers.map((number) => number * 2));
console.log(flatMapped); // [2, 4, 6, 8, 10, 12]
Practical Code Example
// Converting a list of phrases to individual words
let phrases = ['Hello World', 'JavaScript Array'];
let words = phrases.flatMap((phrase) => phrase.split(' '));
console.log(words); // ['Hello', 'World', 'JavaScript', 'Array']
flat()
Description
The flat()
method creates a new array with all sub-array elements concatenated into it recursively up to the specified depth.
Use Cases
- Flattening nested arrays into a single array.
- Simplifying complex array structures.
Basic Code Example
let nestedArray = [1, 2, [3, 4, [5, 6]]];
let flattenedArray = nestedArray.flat(2);
console.log(flattenedArray); // [1, 2, 3, 4, 5, 6]
Practical Code Example
// Flattening an array of task lists
let taskLists = [['Email client', 'Write report'], ['Attend meeting']];
let allTasks = taskLists.flat();
console.log(allTasks);
// ['Email client', 'Write report', 'Attend meeting']
fill()
Description
The fill()
method changes all elements in an array to a static value, from a start index (default 0) to an end index (default array.length). It returns the modified array.
Use Cases
- Filling an array with a specific value.
- Quickly initializing or resetting an array.
Basic Code Example
let numbers = [1, 2, 3, 4, 5];
numbers.fill(0);
console.log(numbers); // [0, 0, 0, 0, 0]
Practical Code Example
// Initializing a game board with empty values
let gameBoard = Array(9);
gameBoard.fill(null);
console.log(gameBoard); // [null, null, null, null, null, null, null, null, null]
Array.from()
Description
Array.from()
is a static method that creates a new, shallow-copied Array instance from an array-like or iterable object.
Use Cases
- Converting array-like objects (e.g., NodeList) into arrays.
- Generating arrays from iterables like strings or Sets.
Basic Code Example
let string = 'hello';
let lettersArray = Array.from(string);
console.log(lettersArray); // ['h', 'e', 'l', 'l', 'o']
Practical Code Example
// Converting a NodeList to an array
let nodeList = document.querySelectorAll('div'); // NodeList of div elements
let divArray = Array.from(nodeList);
divArray.forEach((div) => console.log(div)); // logs each div element
Array.of()
Description
Array.of()
creates a new Array instance with a variable number of arguments, regardless of number or type of the arguments.
Use Cases
- Creating arrays with single or multiple elements.
- Ensuring that arrays are created correctly even with a single number as an argument (unlike the Array constructor).
Basic Code Example
let singleNumberArray = Array.of(10);
console.log(singleNumberArray); // [10]
Practical Code Example
// Creating an array of various types
let mixedArray = Array.of(1, 'Hello', true, { name: 'JavaScript' });
console.log(mixedArray); // [1, 'Hello', true, { name: 'JavaScript' }]
Array.isArray()
Description
Array.isArray()
is a static method that determines whether the passed value is an Array.
Use Cases
- Checking if a variable is an array.
- Validating input types in functions.
Basic Code Example
let array = [1, 2, 3];
let notArray = 'hello';
console.log(Array.isArray(array)); // true
console.log(Array.isArray(notArray)); // false
Practical Code Example
// Function that handles array inputs
function processArray(data) {
if (Array.isArray(data)) {
console.log('Processing array:', data);
} else {
console.log('Input is not an array.');
}
}
processArray([1, 2, 3]); // Processing array: [1, 2, 3]
processArray('hello'); // Input is not an array.
keys()
Description
The keys()
method returns a new Array Iterator object that contains the keys for each index in the array.
Use Cases
- Iterating over the keys (indexes) of an array.
- Useful in conjunction with other iteration methods.
Basic Code Example
let fruits = ['Apple', 'Banana', 'Cherry'];
let keys = fruits.keys();
for (let key of keys) {
console.log(key);
}
// Output: 0, 1, 2
Practical Code Example
// Displaying the index of each item in a list
let tasks = ['Email client', 'Write report', 'Attend meeting'];
let taskKeys = tasks.keys();
for (let key of taskKeys) {
console.log(`Task ${key}: ${tasks[key]}`);
}
// Output: Task 0: Email client, Task 1: Write report, Task 2: Attend meeting
values()
Description
The values()
method returns a new Array Iterator object that contains the values for each index in the array.
Use Cases
- Iterating over the values of an array.
- Using in conjunction with other iteration or transformation methods.
Basic Code Example
let numbers = [1, 2, 3];
let values = numbers.values();
for (let value of values) {
console.log(value);
}
// Output: 1, 2, 3
Practical Code Example
// Logging each value in an array
let colors = ['Red', 'Green', 'Blue'];
let colorValues = colors.values();
for (let color of colorValues) {
console.log(color);
}
// Output: Red, Green, Blue
entries()
Description
The entries()
method returns a new Array Iterator object that contains the key/value pairs for each index in the array.
Use Cases
- Iterating over the array to access both the index and the value of each element.
- Useful for more complex data processing tasks where both the element and its position are needed.
Basic Code Example
let fruits = ['Apple', 'Banana', 'Cherry'];
let entries = fruits.entries();
for (let [index, fruit] of entries) {
console.log(index, fruit);
}
// Output: 0 'Apple', 1 'Banana', 2 'Cherry'
Practical Code Example
// Displaying index and value for task list
let tasks = ['Task 1', 'Task 2', 'Task 3'];
let taskEntries = tasks.entries();
for (let [index, task] of taskEntries) {
console.log(`Task ${index + 1}: ${task}`);
}
// Output: Task 1: Task 1, Task 2: Task 2, Task 3: Task 3
concat()
Description
The concat()
method is used to merge two or more arrays. This method does not change the existing arrays, but instead returns a new array.
Use Cases
- Combining multiple arrays into one.
- Merging arrays without modifying the original arrays.
Basic Code Example
let array1 = ['a', 'b', 'c'];
let array2 = ['d', 'e', 'f'];
let combinedArray = array1.concat(array2);
console.log(combinedArray); // ['a', 'b', 'c', 'd', 'e', 'f']
Practical Code Example
// Combining two lists of tasks
let morningTasks = ['Check emails', 'Team meeting'];
let afternoonTasks = ['Write report', 'Client call'];
let allTasks = morningTasks.concat(afternoonTasks);
console.log(allTasks);
// ['Check emails', 'Team meeting', 'Write report', 'Client call']
copyWithin()
Description
The copyWithin()
method shallow copies part of an array to another location in the same array and returns it without modifying its length.
Use Cases
- Reordering or duplicating elements within an array.
- Useful in certain specific situations where manipulating the positions of elements in an array is required.
Basic Code Example
let numbers = [1, 2, 3, 4, 5];
numbers.copyWithin(0, 3, 4);
console.log(numbers); // [4, 2, 3, 4, 5]
Practical Code Example
// Reordering tasks in a task list
let tasks = ['Email client', 'Available', 'Attend meeting'];
tasks.copyWithin(1, 2);
console.log(tasks); // ['Email client', 'Attend meeting', 'Attend meeting']
Combining Array Methods in JavaScript
Combining or chaining array methods is a powerful feature in JavaScript, allowing you to execute multiple operations on an array in a concise and readable manner. This technique is particularly useful in functional programming.
Introduction to Method Chaining
Method chaining is the process of calling multiple methods on the same object in sequence, with each method call performing an operation and returning the object itself or a new object.
1. Chaining map()
, filter()
, and reduce()
Description
map()
: Transforms each element in an array.filter()
: Selects elements based on a condition.reduce()
: Accumulates values to produce a single result.
Use Case
Calculating the total price of discounted products.
Example
let products = [
{ name: 'Laptop', price: 1000 },
{ name: 'Phone', price: 500 },
{ name: 'Tablet', price: 750 }
];
// Applying a 10% discount and calculating total price
let totalPrice = products
.map((product) => product.price * 0.9) // Apply 10% discount
.filter((price) => price < 800) // Select products under $800 after discount
.reduce((total, price) => total + price, 0); // Calculate total price
console.log(`Total discounted price: $${totalPrice}`);
2. Chaining sort()
, map()
, and slice()
Description
sort()
: Sorts elements.map()
: Transforms elements.slice()
: Selects a portion of the array.
Use Case
Extracting and formatting top 3 high scores from a list of game scores.
Example
let scores = [
{ player: 'Alice', score: 25 },
{ player: 'Bob', score: 30 },
{ player: 'Clara', score: 28 }
];
// Finding top 3 scores and formatting them
let topScores = scores
.sort((a, b) => b.score - a.score) // Sort by score in descending order
.slice(0, 3) // Get top 3 scores
.map((score) => `${score.player}: ${score.score}`); // Format scores
console.log('Top 3 Scores:', topScores);
3. Chaining filter()
, map()
, and forEach()
Description
filter()
: Filters elements.map()
: Transforms elements.forEach()
: Executes a function on each element.
Use Case
Processing and displaying information about available products.
Example
let products = [
{ name: 'Laptop', stock: 4 },
{ name: 'Phone', stock: 0 },
{ name: 'Tablet', stock: 10 }
];
// Displaying available products with stock count
products
.filter((product) => product.stock > 0) // Filter out out-of-stock products
.map((product) => `${product.name} (${product.stock} in stock)`) // Format product info
.forEach((product) => console.log(product)); // Display each product
// Output: Laptop (4 in stock), Tablet (10 in stock)
Chaining array methods provides a streamlined and efficient way to manipulate and process data in JavaScript. It encapsulates multiple operations into a single expression, enhancing readability and maintainability of your code. Understanding how to effectively chain these methods is a key skill for any JavaScript developer.
Performance Considerations in JavaScript Array Methods
When using array methods in JavaScript, understanding their performance implications is crucial, especially in the context of large datasets or high-performance applications. We’ll explore some key considerations and tips for optimizing the usage of array methods.
1. Avoid Unnecessary Method Chaining
Description
While chaining array methods can make code more readable, it can also lead to performance issues, particularly if each method iterates over the entire array.
Example
Using map()
followed by filter()
creates two separate iterations over the array.
Optimization
Combine operations in a single iteration using reduce()
or a loop.
2. Use the Most Efficient Method for the Task
Description
Selecting the right array method for a specific task can significantly impact performance.
Example
forEach()
vs.for
loop: WhileforEach()
is more functional and concise, a traditionalfor
loop can be faster for large arrays.includes()
vs.indexOf()
: If you only need to check for the existence of an element,includes()
is more efficient thanindexOf()
.
3. Be Cautious with sort()
Description
The sort()
method can be expensive in terms of performance, especially for large arrays. It also sorts the array in place, which can be a concern if you need to retain the original array order.
Optimization
- Use
sort()
only when necessary. - Consider copying the array before sorting if the original order is needed.
4. Avoid Deep Nesting of Array Methods
Description
Deeply nested array method calls can lead to reduced readability and potential performance bottlenecks.
Optimization
Break down complex operations into simpler steps or use loops where appropriate.
5. Consider Lazy Evaluation Techniques
Description
Lazy evaluation involves deferring the computation of values until they are actually needed, which can optimize performance, especially for operations on large arrays.
Optimization
- Use libraries like Lodash that support lazy evaluation.
- Implement custom lazy evaluation logic for specific scenarios.
6. Be Aware of Method Limitations
Description
Some methods, like map()
and filter()
, always return a new array, which can be inefficient if you’re dealing with very large arrays and only need to process a small portion of them.
Optimization
- Use
find()
orsome()
to exit early when a condition is met. - Use a
for
loop with a break condition for more control.
Video
Array methods:
Lesson Task
Brief
Complete the following tasks:
Task 1: Using forEach
to Log Elements
Description
Write a function that takes an array of names and logs each name with a greeting. Use the forEach
method.
Example
Input: ['Alice', 'Bob', 'Charlie']
Output:
Hello, Alice!
Hello, Bob!
Hello, Charlie!
Task 2: Using map
to Transform Elements
Description
Create a function that takes an array of numbers and returns a new array with each number doubled. Use the map
method.
Example
Input: [1, 2, 3]
Output: [2, 4, 6]
Task 3: Using filter
to Extract Elements
Description
Develop a function that filters an array of numbers, returning only those that are greater than 10. Use the filter
method.
Example
Input: [5, 12, 18, 7]
Output: [12, 18]
Task 4: Using reduce
to Accumulate Values
Description
Write a function that takes an array of numbers and returns the sum of all elements. Use the reduce
method.
Example
Input: [1, 2, 3, 4]
Output: 10
Solutions
Solution to Task 1
function greetNames(names) {
names.forEach((name) => console.log(`Hello, ${name}!`));
}
// Example usage
greetNames(['Alice', 'Bob', 'Charlie']);
// Output: Hello, Alice! Hello, Bob! Hello, Charlie!
Solution to Task 2
function doubleNumbers(numbers) {
return numbers.map((number) => number * 2);
}
// Example usage
console.log(doubleNumbers([1, 2, 3])); // Output: [2, 4, 6]
Solution to Task 3
function filterGreaterThanTen(numbers) {
return numbers.filter((number) => number > 10);
}
// Example usage
console.log(filterGreaterThanTen([5, 12, 18, 7])); // Output: [12, 18]
Solution to Task 4
function sumNumbers(numbers) {
return numbers.reduce((total, number) => total + number, 0);
}
// Example usage
console.log(sumNumbers([1, 2, 3, 4])); // Output: 10
Each of these solutions demonstrates the use of one of the array methods (forEach
, map
, filter
, reduce
) to perform common tasks on arrays in JavaScript. The comments help explain the purpose and functionality of the code.