JavaScript findLastIndex() মেথড: সম্পূর্ণ বাংলা টিউটোরিয়াল
findLastIndex() একটি ES2023 (ECMAScript 14) এর নতুন মেথড যা অ্যারের শেষ দিক থেকে উপাদানগুলো খুঁজে একটি নির্দিষ্ট শর্ত পূরণকারী উপাদানের index রিটার্ন করে। এটি findLast()-এর মতোই, তবে এটি উপাদান না, বরং উপাদানটির অবস্থান (index) রিটার্ন করে।
সিনট্যাক্স:
array.findLastIndex(callback(element, index, array), thisArg)- callback: একটি ফাংশন যা প্রত্যেক উপাদানের উপর কার্যকর হয়
- thisArg: ঐচ্ছিক; callback-এর
thisমান নির্ধারণ করে - যদি কিছু না মেলে, রিটার্ন করবে -1
উদাহরণ ১: সাধারণ সংখ্যা থেকে index খোঁজা
<script>
const nums = [5, 12, 8, 130, 44];
const index = nums.findLastIndex(num => num > 10);
console.log(index); // আউটপুট: 3 (130 এর index)
</script>
এখানে 130 হলো শেষ উপাদান যা 10 এর বেশি এবং সেটি রয়েছে index 3-এ।
উদাহরণ ২: অবজেক্ট এরেতেও ব্যবহার
<script>
const users = [
{ name: "Ali", age: 25 },
{ name: "Mira", age: 30 },
{ name: "Rafiq", age: 40 }
];
const index = users.findLastIndex(user => user.age > 30);
console.log(index); // আউটপুট: 2
</script>
এখানে Rafiq হলো সর্বশেষ ইউজার যার বয়স ৩০-এর বেশি এবং তার index 2।
findLast() বনাম findLastIndex() তুলনা
| মেথড | ফলাফল | ব্যবহার |
|---|---|---|
| findLast() | উপাদান (value) | শেষ দিক থেকে উপাদান খোঁজে |
| findLastIndex() | index (সংখ্যা) | শেষ দিক থেকে index খোঁজে |
যদি কিছু না মেলে?
<script>
const nums = [2, 4, 6];
const idx = nums.findLastIndex(n => n > 10);
console.log(idx); // আউটপুট: -1
</script>
যদি কোনো উপাদান শর্ত পূরণ না করে, তাহলে -1 রিটার্ন হয়।
টিপস ও সতর্কতা:
- এই মেথডটি mutable না, অর্থাৎ অ্যারেটি পরিবর্তন করে না।
- পুরোনো ব্রাউজার যেমন IE বা পুরনো Chrome এই মেথড সাপোর্ট করে না।
- Polyfill ব্যবহার করতে পারেন যদি ES2023 সাপোর্ট না করে:
findLastIndex() এর Polyfill
function findLastIndex(arr, callback) {
for (let i = arr.length - 1; i >= 0; i--) {
if (callback(arr[i], i, arr)) {
return i;
}
}
return -1;
}
const idx = findLastIndex([1, 2, 3, 4], n => n % 2 === 0);
console.log(idx); // আউটপুট: 3
উপসংহার
findLastIndex() হলো আধুনিক JavaScript-এর একটি চমৎকার সংযোজন যা আপনাকে অ্যারের শেষ দিক থেকে তথ্য বিশ্লেষণ করতে সাহায্য করে। এটি কার্যকরী প্রোগ্রামিং স্টাইলে খুবই উপযোগী এবং কোডকে আরও সহজ ও পড়ার উপযোগী করে তোলে।