Skip to content

Latest commit

 

History

History
113 lines (80 loc) · 1.68 KB

File metadata and controls

113 lines (80 loc) · 1.68 KB
# JavaScript Array HOF

```js
const users = [
  { name: 'A', age: 24, role: 'admin' },
  { name: 'B', age: 20, role: 'user' },
  { name: 'A', age: 30, role: 'user' }
];

1. filter():- Returns: Array , many data

Q. : “Give me ALL matching items”

const result = users.filter(user => user.name === 'A');

2. find():- One object OR undefined

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


3. map():- Array

Q. : “Change data, same length”

const result = users.map(user => user.name = 'ChangeName');

4. forEach():- Nothing

Q. : “Just do something, don’t return”

const names = [];
users.forEach(user => {
  names.push(user.name);
});
users.forEach(user => {
  user.isActive = true;
});

5. some():- boolean

Q. : “Is there AT LEAST ONE?”

const result = users.some(user => user.age > 25);

6. every(): boolean

Q. : “Are ALL matching?”

const result = users.every(user => user.age > 18);

7. reduce():- Anything

Returns: Q. : “Combine everything into one”

const totalAge = users.reduce((sum, user) => {
  return sum + user.age;
}, 0);

8. sort():- Array (same one, modified)

Q. : “Order the data”

users.sort((a, b) => a.age - b.age);

Super Easy Memory Line (Read Daily)

filter → many  
find → one  
map → change  
forEach → nothing  
some → any  
every → all  
reduce → combine  
sort → order