از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
معکوس کردن یک آرایه در جاوا اسکریپت در این آموزش، روش معکوس کردن یک آرایه در جاوا اسکریپت را بررسی خواهیم کرد. چند راه برای انجام این کار وجود دارد، و تشخیص اینکه کدام یک را می خواهید به کار بگیرید معمولا بستگی دارد روی ترجیح شخصی شما ما این دو آرایه را معکوس خواهیم کرد: اجازه دهید numArr = (1، 2، 3، 4،…
سرفصلهای مطلب
در این آموزش نگاهی به این خواهیم داشت روش معکوس کردن یک آرایه در جاوا اسکریپت. چند راه برای انجام این کار وجود دارد، و تشخیص اینکه کدام یک را می خواهید به کار بگیرید معمولا بستگی دارد روی ترجیح شخصی شما
ما این دو آرایه را معکوس خواهیم کرد:
let numArr = (1, 2, 3, 4, 5)
let strArr = ('Java', 'Python', 'JavaScript')
استفاده از Array.reverse()
ساده ترین و ساده ترین راه برای معکوس کردن یک آرایه از طریق reverse()
روش:
let numArrReversed = numArr.reverse();
let strArrReversed = strArr.reverse();
console.log(numArrReversed);
console.log(strArrReversed);
ما دو متغیر جدید برای اشاره به آرایه های حاصل ایجاد کرده ایم:
( 5, 4, 3, 2, 1 )
( 'JavaScript', 'Python', 'Java' )
توجه داشته باشید: این reverse()
متد آرایه را معکوس می کند درجا. این بدان معنی است که اصل num_array
و string_array
برعکس می شوند و دنباله اصلی از بین می رود.
برای ذخیره یک اشاره گر به این آرایه ها در حافظه، نیازی به ایجاد یک متغیر جدید ندارید، زیرا نشانگرهای اصلی از قبل به آرایه های معکوس اشاره می کنند:
numArr.reverse();
strArr.reverse();
console.log(numArr);
console.log(strArr);
این نیز منجر به:
( 5, 4, 3, 2, 1 )
( 'JavaScript', 'Python', 'Java' )
با این حال، “تخصیص” نتیجه به یک متغیر جدید برای نشان دادن وضعیت تغییر یافته، یا حداقل اختصاص یک نام مشخص تر به آرایه تبدیل شده، مانند array_reversed
.
معکوس کردن یک آرایه به صورت عملکردی
برنامه نویسی تابعی الف است فوق العاده علاوه بر اکثر امری ضروری زبانهای برنامه نویسی. ساختارهای عملکردی به ما این امکان را می دهند که عملیات های مختلف، حتی پیچیده، دگرگون کننده را انجام دهیم روی اشیاء و دنباله ها با دستورالعمل های بصری و ساده.
بسیاری از توسعه دهندگان به سادگی عاشق استفاده از ساختارهای تابعی هستند، بنابراین جای تعجب نیست که معکوس کردن یک آرایه معمولاً از طریق ساختارهای عملکردی نیز انجام می شود. این رویکرد به شما امکان میدهد تا در کنار معکوس کردن، تبدیل دیگری را نیز انجام دهید، مانند افزودن یا تغییر عناصر نیز.
برای معکوس کردن عملکرد یک آرایه در جاوا اسکریپت، از عملگر spread و the استفاده می کنیم map()
تابع:
// Preserves original array
let numArrReversed = numArr.map(numArr.pop, (...numArr));
// Doesn't preserve original array
let strArrReversed = (...strArr).map(strArr.pop, strArr);
این map()
روش هر کدام را نقشه میکشد ظاهر شد عنصر (حذف آخرین عنصر) از numArr
و آن را به یک آرایه جدید هل می دهد که به عنوان یک کپی از ایجاد می شود numArr
. با حذف آخرین عنصر و اضافه کردن آن به عنوان اولین عنصر در یک آرایه جدید، یک آرایه معکوس جدید ایجاد می کنیم.
رویکرد اول با یک کپی منجمد شده سروکار دارد numArr
شی، و بنابراین آرایه اصلی را تغییر نمی دهد.
در رویکرد دوم، آرایه اصلی را تغییر میدهیم زیرا از ارجاع به آرایه اصلی در استفاده میکنیم map()
روش، حتی اگر از قبل یک کپی از آرایه ایجاد کنیم:
console.log('Original num_array: ' + numArr);
console.log('Original string_array: ' + strArr);
console.log('Reversed num_array: ' + numArrReversed);
console.log('Reversed string_array: ' + strArrReversed);
بنابراین، هنگامی که همه چیز گفته می شود و انجام می شود، num_array
بدون تغییر باقی می ماند، در حالی که string_array
رفته است:
Original num_array: 1,2,3,4,5
Original string_array:
Reversed num_array: 5,4,3,2,1
Reversed string_array: JavaScript,Python,Java
معکوس کردن یک آرایه با a برای حلقه
در نهایت، روش خوب قدیمی این است که به سادگی آرایه را از طریق a اجرا کنید for
به ترتیب به عقب حلقه بزنید و هر عنصر را به یک آرایه جدید اضافه کنید.
این برای ایجاد یک آرایه معکوس جدید عالی عمل می کند، اما آرایه قدیمی را در جای خود معکوس نمی کند. اگر می خواهید آن را در جای خود معکوس کنید، می خواهید از آن استفاده کنید unshift()
روش اضافه کردن عناصر در ابتدای آرایه، while پیوند دادن (عملیات در محل) به طور مداوم:
function reverse(array) {
let newArr = ();
for(i = array.length-1; i >= 0; i--) {
newArr.push(array(i));
}
return newArr;
}
function reverseInPlace(array) {
for(i = 0; i < array.length; i++) {
let tmp = array.splice(i, 1)(0);
array.unshift(tmp);
}
return array;
}
می توانید از این روش ها به صورت زیر استفاده کنید:
let numArrReversed = reverseInPlace(numArr);
let strArrReversed = reverse(strArr);
console.log('Original num_array: ' + numArr);
console.log('Original string_array: ' + strArr);
console.log('Reversed num_array: ' + numArrReversed);
console.log('Reversed string_array: ' + strArrReversed);
که منجر به:
Original num_array: 5,4,3,2,1
Original string_array: Java,Python,JavaScript
Reversed num_array: 5,4,3,2,1
Reversed string_array: JavaScript,Python,Java
منتشر شده در 1403-01-15 19:05:03