# JavaScript Array HOF ```js const users = [ { name: 'A', age: 24, role: 'admin' }, { name: 'B', age: 20, role: 'user' }, { name: 'A', age: 30, role: 'user' } ];
Q. : "Give me ALL matching items"
const result = users.filter(user => user.name === 'A');
Q. : "Give me FIRST matching item"
const result = users.find(user => user.name === 'A');
forEach is NOT for data transformation. forEach is for SIDE EFFECTS. forEach → change EXISTING data map → create NEW data
Q. : "Change data, same length"
const result = users.map(user => user.name = 'ChangeName');
Q. : "Just do something, don’t return"
const names = []; users.forEach(user => { names.push(user.name); });
users.forEach(user => { user.isActive = true; });
Q. : "Is there AT LEAST ONE?"
const result = users.some(user => user.age > 25);
Q. : "Are ALL matching?"
const result = users.every(user => user.age > 18);
Returns: Q. : "Combine everything into one"
const totalAge = users.reduce((sum, user) => { return sum + user.age; }, 0);
Q. : "Order the data"
users.sort((a, b) => a.age - b.age);
filter → many
find → one
map → change
forEach → nothing
some → any
every → all
reduce → combine
sort → order