পাঠ্যের প্রতিটি অক্ষর কীভাবে প্রক্রিয়াকরণ করবেন (মানদণ্ড সহ)
https://jsperf.com/str-for-in-of-foreach-map-2
জন্য
ক্লাসিক এবং এখন পর্যন্ত সর্বাধিক পারফরম্যান্স সহ । আপনি যদি কোনও পারফরম্যান্স সমালোচনামূলক অ্যালগরিদমে এটি ব্যবহার করার পরিকল্পনা করছেন বা এটির ব্রাউজার সংস্করণগুলির সাথে সর্বাধিক সামঞ্জস্যের প্রয়োজন হয় তবে আপনার এটির সাথে যেতে হবে।
for (var i = 0; i < str.length; i++) {
console.info(str[i]);
}
জন্য ... এর
এর জন্য ... পুনরাবৃত্তকারীগুলির জন্য নতুন ES6 । বেশিরভাগ আধুনিক ব্রাউজার দ্বারা সমর্থিত। এটি দৃশ্যত আরও আবেদনময়ী এবং টাইপিং ভুলের প্রবণতা কম। আপনি যদি একটি প্রকাশনা অ্যাপ্লিকেশনে এই এক জন্য যাচ্ছি, তাহলে হয়ত মত একটি transpiler ব্যবহার হওয়া উচিত হট্টগোল ।
let result = '';
for (let letter of str) {
result += letter;
}
প্রতিটির জন্য, প্রত্যেকটির জন্য
কার্যকরী পদ্ধতির। এয়ারবিএনবি অনুমোদিত হয়েছে । এইভাবে এটি করার বৃহত্তম ক্ষতি হচ্ছে split()
, যা স্ট্রিংয়ের প্রতিটি স্বতন্ত্র চিঠি সংরক্ষণের জন্য একটি নতুন অ্যারে তৈরি করে।
কেন? এটি আমাদের অপরিবর্তনীয় নিয়মকে প্রয়োগ করে। বিশুদ্ধ ফাংশনগুলির সাথে ডিল করা যা মানগুলি ফেরত দেয় পার্শ্ব প্রতিক্রিয়াগুলির তুলনায় যুক্তি করা সহজ।
// ES6 version.
let result = '';
str.split('').forEach(letter => {
result += letter;
});
অথবা
var result = '';
str.split('').forEach(function(letter) {
result += letter;
});
নিম্নলিখিতগুলি আমি অপছন্দ করি।
এ জন্য
... এর থেকে পৃথক, আপনি চিঠির পরিবর্তে চিঠি সূচক পান। এটি বেশ খারাপভাবে সম্পাদন করে।
var result = '';
for (var letterIndex in str) {
result += str[letterIndex];
}
মানচিত্র
ফাংশন পদ্ধতির, যা ভাল। তবে মানচিত্রটি এর জন্য ব্যবহার করা বোঝায় না। অ্যারের অভ্যন্তরে মানগুলি পরিবর্তন করার প্রয়োজনে এটি ব্যবহার করা উচিত, এটি ক্ষেত্রে নয়।
// ES6 version.
var result = '';
str.split('').map(letter => {
result += letter;
});
অথবা
let result = '';
str.split('').map(function(letter) {
result += letter;
});
for(const c of str) { ... }
। এর আরও নীচে আরও বেশ কিছু বিশদে বিশদে তবে যথেষ্ট পরিমাণে উত্তরের উত্তর নেই। পিএস: @ আরজুনের লিঙ্কটি আমার পক্ষে কাজ করে না।