DevRoadmap
JavaScript

JavaScript Array Methods: The Complete Cheat Sheet

JavaScript array methods are among the most used tools in any codebase. This guide covers every important method with clear examples so you can stop Googling the same syntax repeatedly.

READ TIME 12 min read
CATEGORY JavaScript
Advertisement

Why Array Methods Matter So Much

In real JavaScript codebases, you work with arrays constantly — lists of users from a database, products in a cart, posts from an API. The array methods introduced in ES5 and ES6 transformed how this data is processed: instead of writing verbose for-loops, you express what you want to happen in clear, readable chains of operations.

Learning these methods deeply is one of the highest-leverage things a beginner can do. They appear in every React codebase, every Node.js API, and every coding interview. The time you invest here pays back every single day.

Transformation Methods

map() — Transform Every Element

map() creates a new array by applying a function to every element. The original array is not modified.

const prices = [10, 25, 40];
const withTax = prices.map(price => price * 1.1);
// [11, 27.5, 44]

const users = [{name: "Ali"}, {name: "Sara"}];
const names = users.map(user => user.name);
// ["Ali", "Sara"]

filter() — Keep Only Matching Elements

filter() creates a new array containing only elements for which the callback returns true.

const scores = [45, 82, 67, 91, 38];
const passing = scores.filter(score => score >= 60);
// [82, 67, 91]

const active = users.filter(user => user.isActive);

reduce() — Collapse to a Single Value

reduce() is the most powerful and most misunderstood array method. It reduces an array to a single value by accumulating results across all elements.

const cart = [
  { item: "Book", price: 15 },
  { item: "Pen", price: 3 },
  { item: "Notebook", price: 8 }
];

const total = cart.reduce((sum, product) => sum + product.price, 0);
// 26 — starts at 0, adds each price

// Group by category
const grouped = items.reduce((acc, item) => {
  const key = item.category;
  acc[key] = acc[key] || [];
  acc[key].push(item);
  return acc;
}, {});

find() — Get First Matching Element

const user = users.find(u => u.id === 42);
// Returns the first user object with id 42, or undefined

findIndex() — Get Index of First Match

const idx = users.findIndex(u => u.id === 42);
// Returns index number, or -1 if not found

some() — Does At Least One Match?

const hasAdmin = users.some(u => u.role === "admin");
// Returns true if any user is an admin

every() — Do All Elements Match?

const allVerified = users.every(u => u.emailVerified);
// Returns true only if ALL users have verified emails

includes() — Simple Value Check

const fruits = ["apple", "banana", "mango"];
fruits.includes("banana"); // true
fruits.includes("grape");  // false

Modification Methods

flat() and flatMap()

const nested = [1, [2, 3], [4, [5, 6]]];
nested.flat();    // [1, 2, 3, 4, [5, 6]]
nested.flat(2);   // [1, 2, 3, 4, 5, 6] — depth 2

// flatMap = map + flat(1) in one step
const sentences = ["Hello world", "foo bar"];
const words = sentences.flatMap(s => s.split(" "));
// ["Hello", "world", "foo", "bar"]

sort() — Be Careful With This One

// ⚠️ Default sort converts to strings — often wrong for numbers
[10, 1, 21].sort(); // [1, 10, 21] — correct here by accident
[10, 1, 21].sort((a, b) => a - b); // [1, 10, 21] — correct, always use comparator

// Sort objects by property
users.sort((a, b) => a.name.localeCompare(b.name));

slice() vs splice()

const arr = [1, 2, 3, 4, 5];

// slice: returns a copy, does NOT modify original
arr.slice(1, 3);  // [2, 3] — from index 1 up to (not including) 3

// splice: MODIFIES original array
arr.splice(1, 2); // removes 2 elements at index 1, returns [2, 3]
// arr is now [1, 4, 5]

Chaining Methods Together

The real power of array methods comes from chaining them. Because map() and filter() both return new arrays, you can chain operations in a single, readable expression.

const result = employees
  .filter(e => e.department === "Engineering")
  .filter(e => e.yearsExperience >= 3)
  .map(e => ({ name: e.name, salary: e.salary * 1.1 }))  // 10% raise
  .sort((a, b) => b.salary - a.salary);                   // highest first

// "Give the engineers with 3+ years experience a 10% raise,
// sorted by resulting salary, highest first"
Daily PracticeSolve at least one Codewars challenge per day using array methods. Starting at 8kyu (easiest), you'll find that 80% of challenges are most elegantly solved with map, filter, and reduce.
Advertisement