|
| 1 | +# 🚀 JavaScript Array Transformations |
| 2 | + |
| 3 | +## 🔹 Array Transformations কী? |
| 4 | +JavaScript-এ **Array Transformation** মানে হলো একটা অ্যারে থেকে নতুন অ্যারে বানানো, যেখানে আমরা প্রতিটি এলিমেন্টের উপর কিছু পরিবর্তন বা শর্ত প্রয়োগ করি। |
| 5 | + |
| 6 | +### অ্যারের সাধারণ ট্রান্সফরমেশন মেথডগুলো হলো: |
| 7 | +- `map()` |
| 8 | +- `filter()` |
| 9 | +- `reduce()` |
| 10 | +- `forEach()` |
| 11 | +- `sort()` |
| 12 | +- `flatMap()` |
| 13 | + |
| 14 | +--- |
| 15 | + |
| 16 | +## 🔹 1. map() – মান পরিবর্তন করে নতুন অ্যারে বানানো |
| 17 | +`map()` প্রতিটি এলিমেন্টের উপর একটা ফাংশন চালায় এবং নতুন ভ্যালু রিটার্ন করে। |
| 18 | + |
| 19 | +```javascript |
| 20 | +let numbers = [1, 2, 3, 4]; |
| 21 | +let doubled = numbers.map(n => n * 2); |
| 22 | + |
| 23 | +console.log(doubled); // [2, 4, 6, 8] |
| 24 | +``` |
| 25 | + |
| 26 | +## 🔹 2. filter() – শর্ত অনুযায়ী এলিমেন্ট বেছে নেওয়া |
| 27 | + |
| 28 | +filter() প্রতিটি এলিমেন্ট পরীক্ষা করে। যেগুলো শর্ত পূরণ করে শুধু সেগুলো রাখে। |
| 29 | + |
| 30 | +```js |
| 31 | +let numbers = [5, 10, 15, 20]; |
| 32 | +let greaterThan10 = numbers.filter(n => n > 10); |
| 33 | + |
| 34 | +console.log(greaterThan10); // [15, 20] |
| 35 | +``` |
| 36 | +👉 ১০ এর চেয়ে বড় সংখ্যা শুধু রেখে দিয়েছে। |
| 37 | + |
| 38 | + |
| 39 | +## 🔹 3. reduce() – পুরো অ্যারেকে একটি ভ্যালুতে নামিয়ে আনা |
| 40 | +reduce() দিয়ে যোগফল, গড়, গুণ ইত্যাদি হিসাব করা যায়। |
| 41 | + |
| 42 | +```js |
| 43 | +let numbers = [1, 2, 3, 4]; |
| 44 | +let sum = numbers.reduce((acc, n) => acc + n, 0); |
| 45 | + |
| 46 | +console.log(sum); // 10 |
| 47 | + |
| 48 | +``` |
| 49 | +👉 সব সংখ্যার যোগফল বের করেছে। |
| 50 | + |
| 51 | + |
| 52 | +## 🔹 4. forEach() – শুধু প্রতিটি এলিমেন্টে কাজ করা |
| 53 | + |
| 54 | +```js |
| 55 | +forEach() নতুন অ্যারে রিটার্ন করে না, শুধু লুপ চালায়। |
| 56 | + |
| 57 | +let fruits = ["apple", "mango", "banana"]; |
| 58 | +fruits.forEach((f, i) => { |
| 59 | + console.log(i, f.toUpperCase()); |
| 60 | +}); |
| 61 | + |
| 62 | +``` |
| 63 | +👉 শুধু প্রিন্ট করবে, নতুন অ্যারে বানাবে না। |
| 64 | + |
| 65 | + |
| 66 | +## 🔹 5. sort() – সাজানো |
| 67 | +sort() দিয়ে অ্যারে সাজানো হয়। |
| 68 | + |
| 69 | +```js |
| 70 | +let nums = [40, 10, 30, 20]; |
| 71 | +nums.sort((a, b) => a - b); |
| 72 | + |
| 73 | +console.log(nums); // [10, 20, 30, 40] |
| 74 | +``` |
| 75 | + |
| 76 | +## 🔹 6. flatMap() – map + flatten একসাথে |
| 77 | +```js |
| 78 | +let arr = [1, 2, 3]; |
| 79 | +let result = arr.flatMap(n => [n, n * 2]); |
| 80 | + |
| 81 | +console.log(result); // [1, 2, 2, 4, 3, 6] |
| 82 | + |
| 83 | +``` |
| 84 | +## ✅ সারসংক্ষেপ |
| 85 | +- map() ➝ ডাটা পরিবর্তন |
| 86 | +- filter() ➝ শর্ত দিয়ে বেছে নেওয়া |
| 87 | +- reduce() ➝ সব ভ্যালু একত্র করা |
| 88 | +- forEach() ➝ শুধু কাজ করা, রিটার্ন নেই |
| 89 | +- sort() ➝ সাজানো |
| 90 | +- flatMap() ➝ map + flatten |
| 91 | + |
| 92 | + |
0 commit comments