Lesson 16 / 40

Searching & Sorting Arrays

Find items with find, some, every and includes, and sort arrays correctly with comparator functions.

Finding items

find returns the first match, some and every return booleans and includes checks for a value.

const users = [{ id: 1, age: 17 }, { id: 2, age: 30 }];
users.find(u => u.age > 18);      // { id: 2, age: 30 }
users.some(u => u.age < 18);      // true
users.every(u => u.age > 10);     // true
[1, 2, 3].includes(2);            // true

Sorting

sort() compares as strings by default. Always pass a comparator for numbers, and copy first with toSorted or a spread.

[10, 9, 1].sort();                 // [1, 10, 9]  (string order!)
[10, 9, 1].sort((a, b) => a - b);  // [1, 9, 10]
const sorted = [...nums].sort((a, b) => a - b); // keeps nums intact

Quick check

Quick check: Why does [10, 9, 1].sort() give [1, 10, 9]?

  • It compares items as strings by default
  • Sorting is random
  • Numbers cannot be sorted
  • It sorts by length
Answer

It compares items as strings by default — Pass (a, b) => a - b for numeric order.