জাভাস্ক্রিপ্টে অ্যারের উপাদান পরিবর্তনে ত্রুটি
আসুন একটি ত্রুটি বিবেচনা করি যা অ্যারের একটি উপাদান ভুলভাবে পরিবর্তন করার সময় উত্থিত হয়। ধরা যাক আমাদের কাছে এইরকম একটি অ্যারে দেওয়া আছে:
let arr = [1, 2, 3, 4, 5];
ধরা যাক আমাদের কাছে একটি ফাংশনও আছে, যা প্যারামিটার হিসেবে একটি সংখ্যা নেয় এবং সেই সংখ্যার বর্গফল ফেরত দেয়:
function func(num) {
return num ** 2;
}
আসুন for-of লুপ ব্যবহার করে
আমাদের অ্যারেটি পুনরাবৃত্তি করি এবং এর প্রতিটি
উপাদানে আমাদের ফাংশনটি প্রয়োগ করি:
for (let elem of arr) {
elem = func(elem);
}
এই জায়গায় শুরুতে learnersরা প্রায়শই একটি
ভুল করে। বিষয়টি হল যে elem ভেরিয়েবলটি
পরিবর্তন করা অ্যারেটির নিজস্ব উপাদানটির
পরিবর্তন ঘটায় না। আসুন এটি নিশ্চিত করি:
console.log(arr); // অ্যারেটি পরিবর্তিত হয়নি
অ্যারেটি পরিবর্তিত হয় না কারণ
elem ভেরিয়েবলে
উপাদানটির একটি কপি সংরক্ষিত থাকে,
এটির একটি রেফারেন্স নয়।
elem পরিবর্তন করা কপিটিকে প্রভাবিত করে,
কিন্তু অ্যারেটিকে নয়।
সমস্যার সমাধানের জন্য অ্যারেটির উপাদানগুলিকেই পরিবর্তন করতে হবে:
for (let i = 0; i < arr.length; i++) {
arr[i] = func(arr[i]);
}
console.log(arr); // এখন অ্যারেটি পরিবর্তিত হয়েছে