Skip to main content
Frontend is a free bonus on CodeMentor AI — the main product is Python. Register to save your progress and unlock all 290 Frontend lessons + 1,000+ Python lessons.Sign up — free
JavaScript & the browser·Module C1 · Lesson 4
TaskStart with const nums = [1, 2, 3, 4, 5]. Use map to make doubled (each element × 2). Use filter to make evens from nums (% 2 === 0). Log doubled then evens.

Arrays: push, map, filter — the three you use daily

100 XP8 minFREE
Theory

Three array methods cover 80% of JS work

const nums = [1, 2, 3];

nums.push(4);                          // mutates → [1, 2, 3, 4]
const doubled = nums.map(n => n * 2);  // returns NEW array → [2, 4, 6, 8]
const evens = nums.filter(n => n % 2 === 0);  // → [2, 4]

push adds to the end and returns the new length. It mutates the original array — bear that in mind when sharing data.

map runs your function on every item and returns a new array of the same length. The original is untouched.

filter runs your function on every item and returns a new array containing only items where the function returned a truthy value.

The "returns a new array" pattern

map and filter never mutate. You can chain them, save results to const variables, pass them around. That makes them safe to use in React, in worker threads, and across modules.

const active = users
  .filter(u => u.active)
  .map(u => u.email);

Reads top-to-bottom like a sentence. This is one of the things that separates "writes JavaScript" from "writes good JavaScript."

When to use which

  • push — when you're explicitly building up a list step by step. Loops, accumulators.
  • map — same length, transformed items.
  • filter — same items, fewer of them.

Don't reach for for loops in 2026 unless you genuinely need the index. The named methods read better and reviewers prefer them.

2 tabs
Live preview
console output appears here…
PreviousNext lesson →

Get one Python or web tip a day — by email

Short, hand-written, no spam. Unsubscribe in one click.