از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش تقسیم آرایه به تکه های زوج در جاوا اسکریپت آرایه ها یکی از پرکاربردترین ساختارها در برنامه نویسی جاوا اسکریپت هستند، به همین دلیل دانستن روش های داخلی آن مانند پشت جیب بسیار مهم است. در این آموزش، روش تقسیم آرایه به تکه هایی با اندازه n در جاوا اسکریپت را بررسی خواهیم کرد. به طور خاص، ما یک …
سرفصلهای مطلب
معرفی
آرایه ها یکی از پرکاربردترین ساختارها در برنامه نویسی جاوا اسکریپت هستند، به همین دلیل دانستن روش های داخلی آن مانند پشت جیب بسیار مهم است.
در این آموزش نگاهی به این خواهیم داشت چگونه یک آرایه را به قطعات تقسیم کنیم n
اندازه در جاوا اسکریپت.
به طور خاص، ما نگاهی به دو رویکرد خواهیم داشت:
- با استفاده از
slice()
روش و الفfor
حلقه - با استفاده از
splice()
روش و الفwhile
حلقه
تقسیم آرایه به تکه های زوج با استفاده از تکه() روش
ساده ترین راه برای استخراج یک قطعه آرایه، یا بهتر است بگوییم، برش دادن آن، slice()
روش:
slice(start, end)
– بخشی از آرایه فراخوانی شده را بینstart
وend
شاخص ها
توجه داشته باشید: هر دو start
و end
می تواند اعداد صحیح منفی باشد، که فقط نشان می دهد که آنها از انتهای آرایه شمارش شده اند. -1
که آخرین عنصر آرایه است، -2
آخرین نفر بودن و غیره روی…
آرایه توسط slice()
یک کپی کم عمق را برمیگرداند، به این معنی که هر مرجعی در آرایه اصلی فقط همانطور که هست کپی میشود و حافظه را برای اشیاء کاملاً جدید اختصاص نمیدهد.
بنابراین، برای برش یک لیست یا آرایه به تکه های زوج، بیایید از آن استفاده کنیم slice()
روش:
function sliceIntoChunks(arr, chunkSize) {
const res = ();
for (let i = 0; i < arr.length; i += chunkSize) {
const chunk = arr.slice(i, i + chunkSize);
res.push(chunk);
}
return res;
}
const arr = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
console.log(sliceIntoChunks(arr, 3));
با اجرای کد بالا خروجی زیر به دست می آید:
(( 1, 2, 3 ), ( 4, 5, 6 ), ( 7, 8, 9 ), ( 10 ))
در کد بالا به تفکیک می پردازیم arr
به تکه های کوچکتر از اندازه 3
، با تکرار در آرایه و برش دادن آن در هر بار chunkSize
. در آخرین تکرار، تنها یک عنصر وجود خواهد داشت (10
) سمت چپ، که باید تکه خود را تشکیل دهد.
تقسیم آرایه به تکه های زوج با استفاده از splice() روش
حتی اگر splice()
روش ممکن است مشابه به نظر برسد slice()
روش، استفاده و عوارض جانبی آن بسیار متفاوت است. بیایید نگاه دقیق تری بیندازیم:
// Splice does the following two things:
// 1. Removes deleteCount elements starting from startIdx (in-place)
// 2. Inserts the provided new elements (newElem1, newElem2...) into myArray starting with index startIdx (also in-place)
// The return value of this method is an array that contains all the deleted elements
myArray.splice(startIdx, deleteCount, newElem1, newElem2...)
let arrTest = (2, 3, 1, 4)
let chunk = arrTest.splice(0,2)
console.log(chunk) // (2, 3)
console.log(arrTest) // (1, 4)
بیایید این را در عمل از طریق یک مثال کد ببینیم:
function spliceIntoChunks(arr, chunkSize) {
const res = ();
while (arr.length > 0) {
const chunk = arr.splice(0, chunkSize);
res.push(chunk);
}
return res;
}
const arr = (1, 2, 3, 4, 5, 6, 7, 8);
console.log(spliceIntoChunks(arr, 2));
با اجرای این کد به دست می آید:
( ( 1, 2 ), ( 3, 4 ), ( 5, 6 ), ( 7, 8 ) )
در اینجا ما از a استفاده می کنیم while
حلقه برای عبور از آرایه. در هر تکرار، عملیات اتصال را انجام می دهیم و هر تکه را به یک آرایه به دست می آوریم تا زمانی که هیچ عنصر دیگری در آرایه اصلی باقی نماند (arr.length > 0
).
نکته بسیار مهمی که باید به آن توجه کرد این است که splice()
آرایه اصلی را تغییر می دهد. در حالیکه slice()
یک کپی از آرایه اصلی ایجاد می کند، بنابراین هیچ تغییری در آرایه اصلی ایجاد نخواهد شد.
نتیجه
در این مقاله، ما به چند روش ساده برای تقسیم یک لیست به تکه های زوج در جاوا اسکریپت پرداخته ایم. در حین انجام این کار، یاد گرفتیم که چگونه با چند روش آرایه داخلی کار کنیم slice()
و splice()
.
منتشر شده در 1403-01-17 02:31:04