Day 10

Array Methods — map, filter, reduce

16 min
JavaScript 100 Days

map, filter, aur reduce — yeh teen methods JavaScript mein sabse zyada use hote hain. Inhe seekh lo aur code bohot cleaner ho jaata hai.

map() — Transform karo

Har item par function chalao aur new array return karo.

map.js
javascript
let prices = [100, 200, 300, 400];

// Har price par 10% tax add karo
let withTax = prices.map(price => price * 1.1);
console.log(withTax); // [110, 220, 330, 440]

// Names uppercase karo
let names = ["ahmed", "ali", "sara"];
let upper = names.map(name => name.toUpperCase());
console.log(upper); // ["AHMED", "ALI", "SARA"]

// Objects transform karo
let users = [
  { name: "Zohaib", age: 25 },
  { name: "Ali", age: 30 }
];
let userNames = users.map(user => user.name);
console.log(userNames); // ["Zohaib", "Ali"]

filter() — Filter karo

Sirf woh items rakhho jo condition pass karein.

filter.js
javascript
let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

// Even numbers
let evens = numbers.filter(n => n % 2 === 0);
console.log(evens); // [2, 4, 6, 8, 10]

// 50 se zyada prices
let prices = [20, 80, 45, 120, 30, 99];
let expensive = prices.filter(p => p > 50);
console.log(expensive); // [80, 120, 99]

// Adults only
let people = [
  { name: "Ali", age: 16 },
  { name: "Sara", age: 25 },
  { name: "Umar", age: 12 }
];
let adults = people.filter(p => p.age >= 18);
console.log(adults); // [{ name: "Sara", age: 25 }]

reduce() — Ek value mein compress karo

Array ko ek single value mein reduce karta hai.

reduce.js
javascript
let numbers = [1, 2, 3, 4, 5];

// Sum nikalo
let sum = numbers.reduce((total, num) => total + num, 0);
console.log(sum); // 15

// Maximum find karo
let max = numbers.reduce((a, b) => Math.max(a, b), -Infinity);
console.log(max); // 5

// Cart total
let cart = [
  { item: "Shirt", price: 1500 },
  { item: "Shoes", price: 3000 },
  { item: "Cap", price: 500 }
];
let total = cart.reduce((sum, item) => sum + item.price, 0);
console.log("Total:", total); // Total: 5000

🎯 Practice Challenge

Students array banao with name aur marks. Filter karo jo pass hain (>= 50). map se unke grades nikalo. reduce se class average nikalo.