স্ট্রিংয়ের শুরুতে পাঠ্য প্রস্তুত করুন


106

কোন স্ট্রিংয়ের শুরুতে একটি নতুন মান যুক্ত করার জন্য দ্রুততম পদ্ধতিটি কী?

উত্তর:


214
var mystr = "Doe";
mystr = "John " + mystr;

এই আপনার জন্য কাজ করবে না?


যদিও এই সমাধানটি অন্যান্য বিকাশে
ধাতব

অপেক্ষা করুন + + কাজটি পাশাপাশি ব্যবহার করবেন না বা এটি শেষ পর্যন্ত যুক্ত করবে
JuicY_Burrito ২

2
@ জুইকিওয়াই_বুরিটো +=পাঠ্যের শেষে যুক্ত হয়েছে।
মার্ক ক্র্যামার

127

আপনি এটি এইভাবে করতে পারে ..

var mystr = 'is my name.';
mystr = mystr.replace (/^/,'John ');

console.log(mystr);

দাবি অস্বীকার: http://xkcd.com/208/


অপেক্ষা করুন, একটি স্থান পালাতে ভুলে গেছেন।  Wheeeeee [taptaptap] eeeeee।


13
আমি এক্সকেসিডি স্ট্রিপের জন্য এটি উত্সাহিত করতে প্রলুব্ধ হই। দুর্দান্ত জিনিস! আপনার মার্জিত সমাধানটি সম্ভবত বেশ ধীর কারণ এটি নিয়মিত এক্সপ্রেশন প্রসেসরটি ইনস্ট্যান্ট করে।
রোল্ফ

13
@ রলফ সম্ভবত না। এটি অবশ্যইprestring + 'original string'; সমাধানের চেয়ে ধীর ।
গ্যাব্রিয়েল পেট্রিওলি

2
@ গ্যাব্রিয়েল পেট্রিওলি সুবিধাটি হ'ল আপনি কেবল আপনার ডট চেইনে (পাইপলাইন) যুক্ত করতে পারেন। এমনকি আপনি কিছু সংযোজন করতে পারেন, যেমন মাইটিআর.রেপ্লেস (/ $ /, 'গ্যাব্রিয়েল দ্বারা')। এটি ধীর হতে পারে তবে ঠিক আমি যা খুঁজছিলাম।
মাতেজা পেট্রোভিক

2
সম্ভবত এটি নতুন স্ট্যান্ডার্ড হওয়া উচিত: প্রতিটি পোস্টে অবশ্যই প্রাসঙ্গিক এক্সকেসিডি অন্তর্ভুক্ত করতে হবে।
ব্রেট 84c

1
কোনও কারণে আমি ভেবেছিলাম যে ডেস্কে থাকা কম্পিউটারটি আসলে একটি বেসিনেটের বাচ্চা, এবং এও ভেবেছিল যে ছেলেটি শিশুটিকে আঘাত করছে we
থাডানোটো

30

যেহেতু প্রশ্নটি দ্রুততম পদ্ধতিটি কী তা নিয়ে আমি ভাবছিলাম যে আমি কিছু পারফেক্ট মেট্রিক যুক্ত করব।

টিএল; ডিআর একটি বিস্তৃত ব্যবধানে বিজয়ী হ'ল +অপারেটর এবং দয়া করে কখনই রেজেক্স ব্যবহার করবেন না

https://jsperf.com/prepend-text-to-string/1

এখানে চিত্র বর্ণনা লিখুন


1
যেহেতু আমরা পরীক্ষা করতে চান শুরুতে যোগ , এবং শুধুমাত্র CONCATENATE, আমি পরীক্ষায় আপডেট করেছি: jsperf.com/prepend-text-to-string/5
metalim

@ মেটালিম, আপনি পরীক্ষাগুলিতে নোটের কোনও উপাদান পরিবর্তন করেছেন? একটি প্রিপেন্ড হ'ল স্ট্রিং কনকেন্টেশন অর্ডার করা অর্ধেক। এছাড়াও, জেএসফ্রেমের জন্য, আপনাকে পরীক্ষার কেসগুলি একটি লুপে ফেলে দেওয়ার দরকার নেই; স্কোরের বেসলাইনটি পেতে jscreen প্রতিটি পদ্ধতিকে হাজারবার কল করুন। নিখুঁত পরীক্ষাগুলি নির্দিষ্ট পরিস্থিতিতে অনুকূলিত করে, এবং আমি নিশ্চিত না যে এটি প্রায় একই স্ট্রিংকে 1000 বার প্রিপেন্ড করে common
কাইলমিট

আপনি যদি সংক্ষিপ্ত স্ট্রিং দীর্ঘ থেকে দীর্ঘ, বা দীর্ঘ স্ট্রিংকে সংক্ষেপে যুক্ত করেন তবে তা উল্লেখযোগ্য পার্থক্য হতে পারে। যেহেতু আমরা সংক্ষিপ্ত স্ট্রিংকে স্বেচ্ছাসেবী স্ট্রিংয়ের প্রেন্ডেন্ট করতে আগ্রহী , তাই পরীক্ষাগুলিতে এটি করা হয়: দীর্ঘ স্ট্রিং বৃদ্ধি করার জন্য সংক্ষিপ্ত স্ট্রিং প্রিপেন্ডিং। লুপগুলি সংক্ষিপ্ত বা কেবল দীর্ঘ পরীক্ষার এড়ানোর জন্য প্রত্যয় স্ট্রিংয়ের 1000 টি বিভিন্ন দৈর্ঘ্যের পরীক্ষা করার জন্য রয়েছে। @ কাইলমিট, যদি আপনার আরও ভাল ধারণা থাকে তবে পরের পরীক্ষার পুনরাবৃত্তিতে এটি প্রয়োগ করতে নির্দ্বিধায়
ধাতব

14

ES6:

let after = 'something after';
let text = `before text ${after}`;

7
এই কোড স্নিপেট একটি ব্যাখ্যা সহ প্রশ্নটি সমাধান করতে পারে, যদিও সত্যিই আপনার পোস্টের মান উন্নত করতে সহায়তা করে। মনে রাখবেন যে আপনি ভবিষ্যতে পাঠকদের জন্য প্রশ্নের উত্তর দিচ্ছেন, এবং সেই লোকেরা আপনার কোড পরামর্শের কারণগুলি জানেন না। আপনার কোডটি ব্যাখ্যামূলক মন্তব্যে ভিড় না করার চেষ্টা করুন, এটি কোড এবং ব্যাখ্যা উভয়ের পাঠযোগ্যতা হ্রাস করে!
কেয়েস

1
ES6: স্ট্রিং ইন্টারপোলেশন
ব্রায়ান গ্রেস

8

আপনি এটি এইভাবে করতে পারে

"".concat("x","y")

1
এবং কেন "এক্স" .কনক্যাট ("y") নয়? কেবল অন্য স্ট্রিং ইনস্ট্যান্টেশন যুক্ত করতে এবং এটি আরও ধীর করতে?
11

6

আপনি যদি জাভাস্ক্রিপ্টের সংস্করণ ES 2015 (ওরফে ES6) বা তার পরেরটি ব্যবহার করতে চান তবে আপনি ES 2015 দ্বারা প্রবর্তিত টেমপ্লেট স্ট্রিংগুলি ব্যবহার করতে পারেন এবং কিছু নির্দেশিকা (যেমন এয়ারবিএনবির স্টাইল গাইড ) দ্বারা সুপারিশ করেছেন :

const after = "test";
const mystr = `This is: ${after}`;

2

আর একটি বিকল্প যোগ ব্যবহার ব্যবহার করা হবে

var mystr = "Matayoshi";
mystr = ["Mariano", mystr].join(' ');

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.