از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش تبدیل یک رشته به یک آرایه در جاوا اسکریپت دادههای متنی معمولاً از طریق دنبالهای از کاراکترها – رشتهها ذخیره میشوند. این دنباله ها در نهایت آرایه هستند و تبدیل بین دو ساختار معمولاً ساده و شهودی است. فرقی نمی کند یک کلمه را به کاراکترهای آن تقسیم کنید یا یک جمله را به کلمات – تقسیم یک رشته به یک آرایه …
سرفصلهای مطلب
معرفی
داده های متنی معمولاً از طریق دنباله ای از کاراکترها – رشته ها ذخیره می شوند. این دنباله ها در نهایت آرایه هستند و تبدیل بین دو ساختار معمولاً ساده و شهودی است. فرقی نمی کند یک کلمه را به کاراکترهای آن تقسیم کنید، یا یک جمله را به کلمات – تقسیم یک رشته به یک آرایه یک عملیات غیر معمول نیست و بیشتر زبان ها روش های داخلی برای این کار دارند.
در این راهنما، یاد بگیرید که چگونه یک رشته را به یک آرایه در جاوا اسکریپت، با استفاده از
split()
،Object.assign()
،Array.from()
روش ها وspread(...)
اپراتور، و همچنین زمان استفاده از کدام.
رشته را به آرایه با شکاف()
این split()
روش برای تقسیم یک رشته به یک لیست مرتب شده از دو یا چند رشته فرعی، بسته به آن استفاده می شود روی الگوی/تقسیم کننده/جداکننده ارائه شده، و آن را برمی گرداند. Pattern/Divider/Dalimiter اولین پارامتر در فراخوانی متد است و می تواند a باشد عبارت منظم، آ تک شخصیت، یا دیگری رشته.
اگر میخواهید درباره عبارات با قاعده بیشتر بدانید – راهنمای عبارات منظم و رشتههای مطابق در جاوا اسکریپت را بخوانید!
برای مثال، فرض کنید یک رشته داریم:
let quote = 'I am unstoppable!';
می توانستیم آن را تقسیم کنیم روی هر فضای خالی (تجزیه آن به کلمات)، یا روی هر کاراکتر، یا هر جداکننده دلخواه دیگری، مانند 'p'
:
// Split string using a whitespace
let array1 = quote.split(' ');
console.log(array1); // ("I", "am", "unstoppable!")
// Splitstring using an empty string (روی each character)
let array2 = quote.split('');
console.log(array2); // ("I", " ", "a", "m", " ", "u", "n", "s", "t", "o", "p", "p", "a", "b", "l", "e", "!")
// Split string using a specific character
let array3 = quote.split('p');
console.log(array3); // ("I am unsto", "", "able!" )
یکی از معایب اصلی استفاده از کاراکترهای منفرد یا حتی کل رشته ها این است که رویکرد نسبتاً سفت و سخت است. شما نمی توانید مطابقت داشته باشید چندگانه جداکننده ها، مگر اینکه از یک عبارت منظم استفاده کنید. به عنوان مثال، بگویید که می خواهید یک رشته را بشکنید جمله ها. یک جمله می تواند با نقطه پایان یابد (.
)، علامت تعجب (!
)، یک علامت سوال (?
) یا سه نقطه (...
). هر کدام از اینها جملات معتبری هستند، اما اگر بخواهیم از کاراکترها یا رشته ها استفاده کنیم، باید چندین تقسیم را انجام دهیم تا با همه آنها مطابقت داشته باشیم.
تطبیق الگو جایی است که عبارات منظم برتری می یابند! بیایید یک رشته را از هم جدا کنیم روی هر جمله، با هر یک از این جداکننده های پایانی:
let text = "What a big family it was! That would be a big help. The big question was how to end it; Was he there? Terrible occurrence."
let sentences = text.split(/(.,!,?,;,...)/);
console.log(sentences); // ("What a big family it was", " That would be a big help", " The big question was how to end it", " Was he there", " Terrible occurrence", "")
با این حال، تعیین کننده ها گم شده اند! جدا شدیم روی آنها را و در process، آنها را از خروجی حذف کنید. علاوه بر این، ما در ابتدای جملات چندین فضای خالی داریم و در پایان یک رشته خالی وجود دارد! این به این معنی نیست split()
با عبارات منظم به خوبی کار نمی کند – اما می توان گفت که جدا کردن جملات از متن به خوبی حل نمی شود split()
. اینجاست که می توانیم از آن استفاده کنیم match()
متد به جای آن – که الگوهای منطبق را برمی گرداند و تعیین کننده های آنها:
let text = "What a big family it was! That would be a big help. The big question was how to end it; Was he there? Terrible occurrence."
let sentences = text.match(/(^.!?)+(.!?)+/g);
console.log(sentences); // ("What a big family it was!", " That would be a big help.", " The big question was how to end it; Was he there?", " Terrible occurrence." )
مجدداً، اگر علاقه مند به یادگیری بیشتر در مورد عبارات با قاعده هستید – راهنمای ما برای عبارات منظم و رشته های تطبیق در جاوا اسکریپت را بخوانید!
توجه داشته باشید: این split()
متد یک پارامتر دوم را می گیرد، که حد شکافی را که می تواند رخ دهد را مشخص می کند. آن را تغییر نمی دهد تعداد تقسیمات و عناصر به تناسب آرگومان تصویب شده، بلکه تقسیم را انجام می دهد n
بارها، از ابتدا، و پس از آن دیگر تقسیم نمی شود.
برای محدود کردن تعداد تقسیمهایی که انجام میدهیم، میتوانیم به راحتی آرگومان دوم را ارائه کنیم split()
روش:
let sentence = "The big question was how to end it";
let array = sentence.split(" ", 3);
console.log(array); // ("The","big","question")
مورد استفاده رایج برای split()
روش زمانی است که شخصی نام کامل خود را به صورت یک رشته ارائه می کند:
let name = "John Doe"
در اینجا، ما می توانیم نام را تقسیم کرده و آن را به عنوان فیلدهای مختلف یک شی در پایگاه داده ذخیره کنیم، به عنوان مثال:
// Split using a space character
let names = name.split(" ");
console.log(names); // ("John","Doe")
// call names by array index
let firstName = names(0);
let lastName = names(1);
console.log(firstName); // "John"
console.log(lastName); // "Doe"
به جای اینکه مجبور باشیم هر دو عنصر را با استفاده از شاخص آرایه فراخوانی کنیم، می توانیم از آرایه استفاده کنیم تخریب برای تمیزتر کردن تکلیف:
let (firstName, lastName) = name.split(' ');
console.log(firstName, lastName); //"John" "Doe"
توجه داشته باشید: این split()
متد از برخی کاراکترهای UTF-8 مانند ایموجی ها (یعنی 😄، 😍، 💗) پشتیبانی نمی کند و آنها را با یک جفت کاراکتر جایگزین می کند. ��
.
رشته را به آرایه با Array.from()
این from()
روش از Array
کلاس مدعی اصلی است split()
روش. برای ایجاد یک آرایه، با توجه به منبع داده استفاده می شود – و به طور طبیعی، می توان از آن برای ایجاد یک آرایه از یک تکرار استفاده کرد. رشته:
let name = "John Doe";
// String to array of chracters
let nameChars = Array.from(name);
console.log(nameChar); //("J","o","h","n"," ","D","o","e")
// Manipulating array
let nameCharsReversed = nameChars.reverse().join('');
console.log(nameCharsReversed); //"eoD nhoJ"
مزیت عمده استفاده از Array.from()
بجای split()
این است که شما مجبور نیستید با تنظیم یک جداکننده زحمت بکشید – عناصر تشکیل دهنده فقط دوباره در معرض دید قرار می گیرند و به یک آرایه اضافه می شوند، نه اینکه به طور صریح تبدیل شوند. علاوه بر این، Array.from()
روش از ایموجی پشتیبانی می کند شخصیت ها:
let word = "It is sweet 😋";
let wordChars = Array.from(word)
console.log(wordChars); // ("I","t"," ","i","s"," ","s","w","e","e","t"," ","😋")
رشته را با عملگر Spread به آرایه تقسیم کنید
این اپراتور گسترش چندین کاربرد دارد و یک اپراتور پرکاربرد در جاوا اسکریپت است. در زمینه ما – ما بیشتر علاقه مندیم در حال گسترش آرایه ها (رشته ها آرایه هایی از کاراکترها هستند).
اگر می خواهید در مورد اپراتور Spread بیشتر بدانید – اپراتور Spread ما را در جاوا اسکریپت بخوانید!
نحو اپراتور ساده و تمیز است – و ما می توانیم رشته را پهن کنید به یک آرایه:
let name = "John Doe";
// Spread out string into an array
let nameChar = (...name);
console.log(nameChar); //("J","o","h","n"," ","D","o","e")
// Manipulating array
let nameCharReverse = nameChar.reverse().join('');
console.log(nameCharReverse); //"eoD nhoJ"
اپراتور همچنین با ایموجی های UTF-8 کار می کند:
let word = "It is sweet 😋";
let wordChar = (...word)
console.log(wordChar); // ("I","t"," ","i","s"," ","s","w","e","e","t"," ","😋")
تقسیم رشته با Object.assign()
این Object.assign()
متد تمام مقادیر و ویژگی های یک شی را کپی می کند – و آنها را به ویژگی های یک شی دیگر نگاشت می کند. به یک معنا – از آن برای شبیه سازی اشیاء و ادغام آن هایی با ویژگی های یکسان استفاده می شود:
Object.assign(target, ...sources)
در مورد ما – ما باید مقادیر درون یک رشته را در یک آرایه کپی و نگاشت کنیم:
Object.assign((), string)
این رویکرد کمی پرمخاطب تر و از نظر زیبایی شناختی کمتر از دو روش قبلی است:
let name = "John Doe";
// Assigning string values to an array
let nameChar = Object.assign((), name);
console.log(nameChar); //("J","o","h","n"," ","D","o","e")
// Manipulating array
let nameCharReverse = nameChar.reverse().join('');
console.log(nameCharReverse); //"eoD nhoJ"
شایان ذکر است که Object.assign()
از کاراکترهای خاص UTF-8 مانند ایموجی ها پشتیبانی نمی کند:
let word = "It is sweet 😋";
let wordChars = Object.assign((), word);
console.log(wordChars); // ("I","t"," ","i","s"," ","s","w","e","e","t"," ","�","�")
نتیجه
در این راهنمای کوتاه، روش تبدیل رشته به آرایه در جاوا اسکریپت را بررسی کرده ایم. ما کاوش کرده ایم split()
روشی که بالاترین سطح سفارشی سازی را دارد – از جمله تقسیم کردن روی عبارات با قاعده! سپس، ایجاد آرایه ها را بررسی کرده ایم from()
منابعی مانند رشته ها عملگر Spread در گسترش رشته ها به آرایه ها بسیار خوب عمل می کند و ما در نهایت Object.assign()
روشی برای تخصیص مقادیر یک رشته به یک آرایه.
منتشر شده در 1403-01-12 18:59:03