মূল প্রশ্নের প্রয়োজনীয়তাগুলি স্পষ্টভাবে স্ট্রিং প্রবৃদ্ধি থেকে উপকার করতে পারে না, কারণ মনে হচ্ছে এটি নির্বিচারে প্রতিস্থাপন কীগুলির রানটাইম প্রক্রিয়াজাতকরণ।
তবে , যদি আপনাকে কেবল স্ট্রিং ইন্টারপোলেশন করতে হয় তবে আপনি ব্যবহার করতে পারেন:
const str = `My name is ${replacements.name} and my age is ${replacements.age}.`
স্ট্রিংটি সীমিত করে ব্যাকটিকগুলি নোট করুন, সেগুলি প্রয়োজনীয়।
নির্দিষ্ট ওপির প্রয়োজন অনুসারে একটি উত্তরের জন্য, আপনি String.prototype.replace()
প্রতিস্থাপনগুলির জন্য ব্যবহার করতে পারেন ।
নিম্নলিখিত কোডটি সমস্ত ম্যাচ পরিচালনা করবে এবং কোনও প্রতিস্থাপন ছাড়াই এগুলি স্পর্শ করবে না (যতক্ষণ না আপনার প্রতিস্থাপনের মানগুলি সমস্ত স্ট্রিং হয়, যদি না হয় তবে নীচে দেখুন)।
var replacements = {"%NAME%":"Mike","%AGE%":"26","%EVENT%":"20"},
str = 'My Name is %NAME% and my age is %AGE%.';
str = str.replace(/%\w+%/g, function(all) {
return replacements[all] || all;
});
jsFizz ।
যদি আপনার কিছু প্রতিস্থাপন স্ট্রিং না হয় তবে নিশ্চিত হয়ে নিন যে তারা প্রথমে অবজেক্টে রয়েছে। আপনার যদি উদাহরণের মতো ফর্ম্যাট থাকে, যেমন শতাংশের চিহ্নগুলিতে আবৃত থাকে তবে আপনি এটি in
অর্জন করতে অপারেটরটি ব্যবহার করতে পারেন ।
jsFizz ।
তবে, যদি আপনার ফর্ম্যাটের একটি বিশেষ বিন্যাস না থাকে, যেমন কোনও স্ট্রিং না থাকে এবং আপনার প্রতিস্থাপনের অবজেক্টে null
প্রোটোটাইপ না থাকে , ব্যবহার করুন Object.prototype.hasOwnProperty()
, আপনি যদি গ্যারান্টি দিতে না পারেন তবে আপনার সম্ভাব্য প্রতিস্থাপন সাবস্ট্রিংগুলির কোনওটিই প্রোটোটাইপের সংখ্যার নামের সাথে সংঘর্ষ করবে না।
jsFizz ।
অন্যথায়, যদি আপনার প্রতিস্থাপনের স্ট্রিংটি থাকে 'hasOwnProperty'
, আপনি একটি ফলাফল বিশৃঙ্খলাযুক্ত স্ট্রিং পাবেন।
jsFizz ।
একটি সাইড নোট হিসাবে, আপনি বলা উচিত replacements
একটি Object
, একটি না Array
।