🎮 findLast() & findLastIndex(): search from the end

find() walks from the front and stops at the first match. findLast() walks from the back and stops at the first match it reaches — the array's last one. Pick a predicate, watch where each method lands, then reveal why [...arr].reverse().find() reports the wrong position.

1 Pick a predicate
2 The array
find() / findIndex() scan this way → ← findLast() / findLastIndex() scan this way
3 What each method returns
find(pred)
findIndex(pred)
findLast(pred)
findLastIndex(pred)
Ready.
4 The old way: copy, reverse, then find

[...items].reverse() allocates a brand-new array with all 8 elements, then .reverse() flips that copy in place. findIndex() then runs on the copy — so the index it reports is a position inside the copy, not inside items.

❌ Old way

✅ findLast way