forলুপ এবং forEachপদ্ধতির মধ্যে সর্বাধিক গুরুত্বপূর্ণ পার্থক্যটি হ'ল প্রাক্তনের সাথে আপনি breakলুপটি আউট করতে পারেন । আপনি continueকেবলমাত্র ফাংশনটি দিয়ে চলে এসে অনুকরণ করতে পারেন forEachতবে পুরোপুরি লুপিং বন্ধ করার কোনও উপায় নেই।
এটি বাদ দিয়ে দুজন কার্যকরভাবে একই কার্যকারিতা সম্পাদন করে। ভেরিয়েবল উত্তোলনের কারণে আরেকটি ছোট পার্থক্য লুপের জন্য সূচকের (এবং সমস্ত ভেরিয়েবল যুক্ত) এর সুযোগকে জড়িত করে।
for (var i = 0; i < arr.length; i++) { ... }
arr.forEach(function (el, i) { ... });
যাইহোক, আমি দেখতে পেয়েছি যে forEachএটি আরও বেশি অভিব্যক্তিপূর্ণ — এটি কোনও অ্যারের প্রতিটি উপাদান দিয়ে পুনরাবৃত্তি করার আপনার ইচ্ছাকে প্রতিনিধিত্ব করে এবং এটি আপনাকে কেবল সূচকটি নয়, উপাদানটির একটি রেফারেন্স সরবরাহ করে। সামগ্রিকভাবে, এটি বেশিরভাগই ব্যক্তিগত স্বাদে নেমে আসে তবে আপনি যদি ব্যবহার করতে পারেন তবে forEachআমি এটি ব্যবহার করার পরামর্শ দেব।
দুটি সংস্করণের মধ্যে আরও কয়েকটি উল্লেখযোগ্য পার্থক্য রয়েছে, বিশেষত কর্মক্ষমতা সম্পর্কিত regarding প্রকৃতপক্ষে, লুপের জন্য সরল forEachপদ্ধতিটির চেয়ে যথেষ্ট ভাল পারফর্ম করে , যেমন এই jspਫ਼ পরীক্ষা দ্বারা প্রদর্শিত ।
এই জাতীয় পারফরম্যান্স আপনার জন্য প্রয়োজনীয় কিনা তা সিদ্ধান্ত নেওয়ার জন্য আপনার উপর নির্ভর করে এবং বেশিরভাগ ক্ষেত্রেই আমি গতিবেগের বাইরে প্রকাশের পক্ষে চাই। যেমন উল্লেখ করা এই গতি পার্থক্য, সম্ভবত মৌলিক লুপ এবং পদ্ধতি যখন বিক্ষিপ্ত অ্যারে উপর অপারেটিং মধ্যে ছোটখাট শব্দার্থিক পার্থক্য কারণে এই উত্তরটি ।
আপনার যদি forEachএবং / অথবা আপনাকে প্রথমে লুপটি ভেঙে ফেলার প্রয়োজন হয় না, আপনি _.eachবিকল্প হিসাবে লো-ড্যাশ ব্যবহার করতে পারেন যা ক্রস ব্রাউজারেও কাজ করবে। আপনি যদি jQuery ব্যবহার করে থাকেন তবে এটি একটি অনুরূপ সরবরাহ করে $.each, কেবল প্রতিটি পরিবর্তনের কলব্যাক ফাংশনে পাস হওয়া আর্গুমেন্টগুলির পার্থক্যগুলি নোট করুন।
( forEachপলিফিল হিসাবে , যদি আপনি সেই রাস্তাটি যেতে চান তবে এটি সমস্যা ছাড়াই পুরানো ব্রাউজারগুলিতে কাজ করা উচিত))
breakবাইরে যাওয়া সম্ভব নয়forEach। তবে একটি বড় সুবিধা হ'ল ফাংশনটি দিয়ে একটি নতুন সুযোগ তৈরি করা। পলিফিল দিয়ে আপনার কোনও সমস্যা হওয়া উচিত নয় (কমপক্ষে আমি কোনও সমস্যার মুখোমুখি হইনি)।