# 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