از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
تکرار رشته ها در جاوا اسکریپت
سرفصلهای مطلب
معرفی
دستکاری رشته بخشی اساسی از کدنویسی است، مانند تکرار یا تکرار رشته ها/کاراکترها – کاری که ممکن است بی اهمیت به نظر برسد، اما برای سناریوهای خاصی مهم است، خواه قالب بندی خروجی برای نمایش به کاربر یا ذخیره انواع خاصی از داده ها در یک فایل. در این بایت، خواهیم دید که برای تکرار رشته ها چه چیزی لازم است و چگونه آن را در جاوا اسکریپت انجام دهیم.
نیاز به تکرار رشته ها
تصور کنید که در حال ساخت یک ابزار خط فرمان هستید که باید یک حاشیه با اندازه پویا در اطراف یک عنصر مانند یک جدول ایجاد کند. حاشیه از یک رشته کاراکتر تشکیل شده است که باید بر اساس اندازه عنصر تکرار شوند. یا سناریویی را در نظر بگیرید که در آن باید رشته ای با طول خاصی برای اهداف آزمایشی ایجاد کنید.
تکرار رشته در مواردی مانند این ابزار مفیدی می شود. این یک عملیات ساده است، اما دانستن روش انجام آن به روش “درست” می تواند کد شما را بسیار ساده تر و اصطلاحی تر کند.
چگونه یک رشته را در جاوا اسکریپت تکرار کنیم
جاوا اسکریپت چند راه برای تکرار یک رشته دارد. دو روش متداول استفاده از داخلی است repeat()
روش و با استفاده از الف for
حلقه بیایید این روش ها را با جزئیات بیشتری بررسی کنیم.
با استفاده از تکرار() روش
معرفی شده در ES6، repeat()
متد یک متد جاوا اسکریپت داخلی است که به سادگی رشته را چند بار مشخص تکرار می کند.
در اینجا روش استفاده از آن آورده شده است:
let str = "rasanegar ";
console.log(str.repeat(3));
این خروجی خواهد داشت:
rasanegar rasanegar rasanegar
این repeat()
روش یک روش فوق العاده ساده برای تکرار یک رشته است. تنها کاری که باید انجام دهید این است که متد روی رشته ای را که می خواهید تکرار کنید فراخوانی کنید و تعداد تکرارها را به عنوان آرگومان ارسال کنید.
توجه داشته باشید: این repeat()
متد رشته اصلی را تغییر نمی دهد. یک رشته جدید با محتوای تکرار شده برمی گرداند.
این repeat()
متد ابزاری عالی برای زمانی است که باید یک رشته را چند بار تکرار کنید. استفاده از آن آسان است، بسیار خوانا است و بخشی از استاندارد جاوا اسکریپت است – آن را به انتخابی مطمئن برای تکرار رشته تبدیل می کند.
استفاده از حلقه For
در حالی که repeat()
روش ساده ترین راه برای تکرار رشته در جاوا اسکریپت است، روش دیگری وجود دارد که متکی به روش سفارشی نیست – روش قدیمی خوب for
حلقه این روش کمی دستی تر است، اما به شما امکان می دهد تکرار را کمی بیشتر از repeate()
روش، مانند اگر نیاز به تکرار مشروط یک رشته یا کاراکتر دارید.
در اینجا یک مثال ساده آورده شده است:
let text = "rasanegar ";
let repeatedText = "";
for (let i = 0; i < 5; i++){
repeatedText += text;
}
console.log(repeatedText); // "rasanegar rasanegar rasanegar rasanegar rasanegar "
در کد بالا، یک رشته خالی ایجاد می کنیم repeatedText
و سپس ضمیمه کردن text
به آن پنج بار در for
حلقه نتیجه این است که رشته “rasanegar” پنج بار تکرار شده است.
این روش می تواند کمی دست و پا گیرتر از استفاده باشد repeat()
، اما خوب است بدانید که وجود دارد، به خصوص اگر در محیط JS کار می کنید که پشتیبانی نمی کند. repeat()
.
مقایسه روش ها
اکنون که دو روش مختلف برای تکرار یک رشته دیدیم، ممکن است تعجب کنید که کدام یک را باید استفاده کنید. جواب؟ بستگی دارد. بیایید به برخی از عواملی که ممکن است بخواهید در نظر بگیرید نگاهی بیاندازیم.
کارایی
وقتی صحبت از عملکرد می شود، repeat()
روش سریعتر از for
حلقه این به این دلیل است که repeat()
متد یک تابع جاوا اسکریپت داخلی است و برای عملکرد بهینه شده است.
با این حال، تفاوت در عملکرد ناچیز است، مگر اینکه با رشته های بسیار بزرگ سر و کار داشته باشید یا یک رشته را چندین بار تکرار کنید.
console.time('repeat');
"rasanegar ".repeat(1000000);
console.timeEnd('repeat'); // repeat: 0.179ms
console.time('for loop');
let str = "";
for (let i = 0; i < 1000000; i++){
str += "rasanegar ";
}
console.timeEnd('for loop'); // for loop: 94.756ms
در کد بالا، مدت زمان تکرار یک رشته را یک میلیون بار زمان بندی می کنیم. همانطور که می بینید، repeat()
به طور قابل توجهی سریعتر است، با بیش از 500 برابر سریعتر وارد می شود! اما به یاد داشته باشید، مگر اینکه با اعداد مشابه بزرگ کار کنید، بعید است تفاوتی را متوجه شوید.
خوانایی
از نظر خوانایی، repeat()
روش برنده دست پایین است. واضح، مختصر است و دقیقاً به شما می گوید که چه کاری انجام می دهد. این for
از سوی دیگر، حلقه کمی به بار شناختی بیشتری نیاز دارد تا بفهمیم چه اتفاقی در حال رخ دادن است.
// Clear and concise
let str1 = "rasanegar".repeat(5);
// Requires a bit more thinking
let str2 = "";
for (let i = 0; i < 5; i++) {
str2 += "rasanegar";
}
همانطور که دونالد کنوت یک بار گفت، “برنامه ها برای خواندن توسط انسان ها و فقط به صورت تصادفی برای کامپیوترها برای اجرا ساخته شده اند.” بنابراین، هنگامی که شک دارید، خوانایی را به افزایش عملکرد جزئی ترجیح دهید.
سازگاری مرورگر
البته، اگر با یک کتابخانه کراس پلتفرم یا کد فرانت اند کار می کنید، واقعاً باید سازگاری مرورگر را در نظر بگیرید.
این repeat()
متد افزودنی مدرن به جاوا اسکریپت است که در ES6 معرفی شده است. و خوشبختانه توسط اکثر مرورگرهای مدرن از جمله کروم، فایرفاکس، سافاری و اج پشتیبانی میشود. با این حال، اگر برای مخاطبانی توسعه میدهید که ممکن است از مرورگرهای قدیمیتری مانند اینترنت اکسپلورر استفاده کنند، ممکن است با برخی مشکلات سازگاری مواجه شوید زیرا IE از این برنامه پشتیبانی نمیکند. repeat()
روش.
توجه داشته باشید: همیشه بررسی کنید می توانم استفاده کنم وب سایت برای بررسی سازگاری روش های جاوا اسکریپت با مرورگرهای مختلف. اگر به طور تصادفی از روشی استفاده کنید که به طور گسترده پشتیبانی نمی شود، از سردرد شما در مسیر جلوگیری می کند
از سوی دیگر، با استفاده از a for
حلقه برای تکرار رشته ها یک رویکرد سنتی تر است و در همه مرورگرها، از جمله مرورگرهای قدیمی مانند IE، پشتیبانی می شود، بنابراین کمی ایمن تر است.
نتیجه
در این بایت، روش تکرار رشته ها در جاوا اسکریپت را با استفاده از repeat()
روش و الف for
حلقه ما همچنین سرعت هر روش، سازگاری مرورگر را بررسی کردیم و اشاره کردیم که در حالی که repeat()
متد افزودنی مدرن به زبان است و در مرورگرهای قدیمی پشتیبانی نمی شود for
حلقه سازگاری گسترده تری را ارائه می دهد.
(برچسبها برای ترجمه)# جاوا اسکریپت
منتشر شده در 1402-12-27 20:08:04