The map method helps you change every item in a list and get a new list with the changed items.
Map method in Javascript
array.map(function(item, index, array) { // return new item })
The map method runs a function on each item in the array.
The function must return the new item to be in the new array.
[1, 2, 3].map(x => x * 2)
['apple', 'banana'].map(fruit => fruit.toUpperCase())
[{name: 'Ann'}, {name: 'Bob'}].map(person => person.name)This program doubles each number in the list and prints the new list.
const numbers = [1, 2, 3, 4]; const doubled = numbers.map(num => num * 2); console.log(doubled);
The original array does not change; map creates a new array.
If you forget to return a value in the function, the new array will have undefined items.
Use map to make a new array by changing each item in the old array.
The function inside map must return the new item.
The original array stays the same after using map.
Practice
What does the map method do in JavaScript?
Solution
Step 1: Understand the purpose of
Themapmapmethod applies a function to each element and creates a new array with the results.Step 2: Compare with other array methods
Unlikefilterorsort,mapdoes not remove or reorder elements but transforms them.Final Answer:
Creates a new array by applying a function to each element of the original array. -> Option CQuick Check:
map creates new transformed array = A [OK]
- Thinking map changes the original array
- Confusing map with filter or sort
- Believing map removes elements
Which of the following is the correct syntax to double each number in the array nums using map?
const nums = [1, 2, 3];
Solution
Step 1: Check arrow function syntax inside map
The function must bex => x * 2to return the doubled value directly.Step 2: Identify syntax errors in other options
const doubled = nums.map(x * 2); misses the arrow function syntax. const doubled = nums.map(x => { x * 2 }); uses braces but no return statement, so returns undefined. const doubled = nums.map(x => return x * 2); incorrectly uses return without braces.Final Answer:
const doubled = nums.map(x => x * 2); -> Option AQuick Check:
Correct arrow function syntax = B [OK]
- Missing arrow (=>) in the function
- Using braces without return statement
- Incorrect return syntax inside arrow function
What is the output of the following code?
const arr = [1, 2, 3]; const result = arr.map(x => x + 1); console.log(result);
Solution
Step 1: Understand the map function applied
Each element x in arr is increased by 1, so 1 becomes 2, 2 becomes 3, and 3 becomes 4.Step 2: Check the output array
The new array is [2, 3, 4], which is logged to the console.Final Answer:
[2, 3, 4] -> Option BQuick Check:
Each element +1 = [2, 3, 4] [OK]
- Thinking original array changes
- Confusing output with original array
- Expecting error due to syntax
Find the error in this code snippet:
const numbers = [1, 2, 3];
const newNumbers = numbers.map(num => { num * 3 });
console.log(newNumbers);Solution
Step 1: Analyze arrow function with braces
When using braces in arrow functions, an explicitreturnis needed to return a value.Step 2: Identify missing return
The function body{ num * 3 }does not return anything, sonewNumberswill be an array of undefined.Final Answer:
Missing return statement inside the arrow function block. -> Option DQuick Check:
Arrow function with braces needs return [OK]
- Forgetting return inside arrow function with braces
- Thinking map changes original array
- Assuming map works only with simple functions
You have an array of objects representing people:
const people = [
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 30 },
{ name: 'Carol', age: 35 }
];
// Use map to create an array of greetings like "Hello, Alice!"Which code correctly creates this greetings array?
Solution
Step 1: Use map to transform each object to a greeting string
The function should return a string like "Hello, Alice!" using template literals.Step 2: Check arrow function syntax for returning string
const greetings = people.map(person => `Hello, ${person.name}!`); uses implicit return with template literal correctly. const greetings = people.map(person => { `Hello, ${person.name}!` }); misses return inside braces. const greetings = people.map(person => { return `Hello, ${person.age}!` }); incorrectly uses age instead of name. const greetings = people.map(person => person.name + 'Hello!'); concatenates incorrectly.Final Answer:
const greetings = people.map(person => `Hello, ${person.name}!`); -> Option AQuick Check:
Implicit return with template literal = C [OK]
- Missing return inside braces
- Incorrect string concatenation
- Confusing implicit and explicit return
Ready to prove it?
Pass the test and this pattern moves unknown
