আমি যে বড় প্রকল্পে (সিউডোকোড) কাজ করছি তার মধ্যে নীচের লুপ টীকাটি পেয়েছি:
var someOtherArray = [];
for (var i = 0, n = array.length; i < n; i++) {
someOtherArray[i] = modifyObjetFromArray(array[i]);
}
আমার মনোযোগ কী এনেছে তা হ'ল অতিরিক্ত "এন" পরিবর্তনশীল। আমি এর আগে কখনও লুপের জন্য লেখা দেখিনি।
স্পষ্টতই এই পরিস্থিতিতে এই কোডটি নিম্নলিখিত উপায়ে (যা আমি খুব অভ্যস্ত) লিখিত না হতে পারে তার কোনও কারণ নেই:
var someOtherArray = [];
for (var i = 0; i < array.length; i++) {
someOtherArray[i] = modifyObjetFromArray(array[i]);
}
কিন্তু এটি আমার চিন্তাভাবনা পেয়েছে।
লুপের জন্য এই জাতীয় লেখার অর্থ কী? ধারণাটি মাথায় আসে যে লুপ প্রয়োগের জন্য "অ্যারে" দৈর্ঘ্য পরিবর্তিত হতে পারে, তবে আমরা মূল আকারের চেয়ে আরও লুপ করতে চাই না, তবে আমি এ জাতীয় দৃশ্য কল্পনা করতে পারি না।
লুপের মধ্যে অ্যারে সঙ্কুচিত করা খুব বেশি অর্থবোধ করে না, কারণ আমরা আউটফাউন্ডস এক্সসেপশন পাওয়ার সম্ভাবনা পেয়েছি।
এই টীকাটি কার্যকর হয় এমন কোনও ডিজাইনের প্যাটার্ন রয়েছে কি?
@ জেরি 101 দ্বারা উল্লিখিত হিসাবে সম্পাদনা করুন কার্যকারিতা। আমি তৈরি করেছি পারফরম্যান্স পরীক্ষার লিঙ্কটি এখানে: http://jsperf.com/ninforloop । আমার মতে পার্থক্য যথেষ্ট বড় না যদি আপনি খুব বড় অ্যারে যদিও পুনরাবৃত্তি করেন। আমি যে কোডটি অনুলিপি করেছি তাতে কেবল 20 টি উপাদান রয়েছে, তাই আমি মনে করি এই ক্ষেত্রে পাঠযোগ্যতা কর্মক্ষমতা বিবেচনার চেয়ে বেশি।
n
চেয়ে ধীর গতি হতে পারে array.Length
যেহেতু জিত্তর খেয়াল করতে পারে না যে এটি অ্যারে বাউন্ড চেকগুলি অপসারণ করতে পারে।