آرایه های جاوا اسکریپت – انجمن DEV

Summarize this content to 400 words in Persian Lang
آرایه ها چیست؟
آرایه ها ساختار داده ای هستند که مجموعه ای مرتب از عناصر را ذخیره می کند. در جاوا اسکریپت، آرایه ها به عنوان نوع خاصی از شی طبقه بندی می شوند و می توانند اعداد، رشته ها، اشیاء یا آرایه های دیگر را ذخیره کنند. عناصر موجود در یک آرایه در پرانتز مربع قرار می گیرند [ ] و از یک شاخص مبتنی بر صفر استفاده کنید. شاخص مبتنی بر صفر به این معنی است که عنصر اول یک آرایه دارای شاخص 0، عنصر دوم دارای شاخص 1 و غیره خواهد بود.
const names = [“David”, “Hannah”, “William”];
console.log(names[0]); // returns the first element
// returns “David”
console.log(names[1]); // returns the second element
// returns “Hannah”
console.log(names[2]); // returns the third element
// returns “William”
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
چگونه می توان آرایه ها را تغییر داد یا دستکاری کرد؟
شاخص عنصر در یک آرایه
یک عنصر جدید را می توان با اختصاص یک مقدار به یک شاخص خالی به آرایه اضافه کرد.
names[3] = “Eric”;
console.log(names);
// returns [“David”, “Hannah”, “William”, “Eric”]
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
عناصر موجود در یک آرایه را می توان با تخصیص مجدد یک مقدار جدید به یک شاخص موجود تغییر داد.
names[1] = “Juniper”;
console.log(names);
// returns [“David”, “Juniper”, “William”, “Eric”]
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
روش های آرایه
آرایهها را میتوان با روشهای آرایه مانند «فشار»، «pop»، «unshift»، «shift»، «slice» و «splice» تغییر داد یا دستکاری کرد.
'فشار دادن()'
متد Push یک یا چند عنصر را به عنوان آرگومان می گیرد، عناصر را به انتهای آرایه اضافه می کند و طول آرایه اصلاح شده را برمی گرداند.
names.push(“Bob”);
// returns 5
console.log(names);
// returns [“David”, “Juniper”, “William”, “Eric”, “Bob”]
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
'ترکیدن()'
متد 'pop' هیچ آرگومان نمی گیرد، آخرین عنصر آرایه را حذف می کند و عنصر حذف شده را برمی گرداند.
names.pop();
// returns “Bob”
console.log(names);
// returns [“David”, “Juniper”, “William”, “Eric”]
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
'unshift()'
متد 'unshift' یک یا چند عنصر را به عنوان آرگومان می گیرد، عناصر را به ابتدای آرایه اضافه می کند و طول آرایه اصلاح شده را برمی گرداند.
names.unshift(“Jack”, “Jane”);
// returns 6
console.log(names);
// returns [“Jack”, “Jane”, “David”, “Juniper”, “William”, “Eric”]
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
'تغییر مکان()'
متد 'shift' هیچ آرگومان نمی گیرد، اولین عنصر یک آرایه را حذف می کند و عنصر حذف شده را برمی گرداند.
names.shift();
// returns “Jack”
console.log(names);
// returns [“Jane”, “David”, “Juniper”, “William”, “Eric”]
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
'تکه()'
متد 'slice' دو آرگومان اختیاری (startIndex، endIndex) می گیرد و یک آرایه جدید را با عناصر از startIndex به endIndex آرایه اصلی بازمی گرداند، اما شامل آن نمی شود. اگر startIndex حذف شود، 0 استفاده می شود. اگر endIndex حذف شود، از طول آرایه استفاده می شود. از اعداد شاخص منفی می توان برای شمارش معکوس از انتهای آرایه استفاده کرد.
names.slice(1, 3);
// returns [“David”, “Juniper”]
names.slice(3);
// returns [“Juniper”, “William”, “Eric”]
names.slice(-2, 1);
// returns [“William”, “Eric”, “Jane”]
names.slice();
// returns [“Jane”, “David”, “Juniper”, “William”, “Eric”]
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
'splice()'
متد 'splice' یک یا چند آرگومان (startIndex, deleteCount, element1, element2, …) می گیرد و یک آرایه جدید حاوی تمام عناصر حذف شده را برمی گرداند. از startIndex، تعداد deleteCount عناصر حذف میشوند و آرگومانهای عنصر زیر به آرایهای که از startIndex شروع میشود، اضافه میشوند. اگر deleteCount حذف شود، تمام عناصر از startIndex تا انتهای آرایه حذف می شوند. اگر آرگومان های عنصر حذف شوند، هیچ عنصری اضافه نمی شود.
names.splice(0, 1, “Joe”, “Alex”);
// returns [“Jane”]
console.log(names);
// returns [“Joe”, “Alex”, “David”, “Juniper”, “William”, “Eric”]
names.splice(1, 4);
// returns [“Alex”, “David”, “Juniper”, “William”]
console.log(names);
// returns [“Joe”, “Eric”]
names.splice(0, 0, “Bob”, “Frank”, “Maria”)
// returns []
console.log(names);
// returns [“Joe”, “Bob”, “Frank”, “Maria”, “Eric”]
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
از آنجایی که “push”، “pop”، “unshift”، “shift و “splice” آرایه اصلی را اصلاح میکنند، به عنوان روشهای مخرب طبقهبندی میشوند. روش 'slice' آرایه اصلی را دست نخورده باقی می گذارد، بنابراین به عنوان غیر مخرب طبقه بندی می شود.
اپراتور پخش “…”
برای افزودن یا کپی کردن عناصر به یک آرایه به صورت غیر مخرب، می توان از عملگر spread استفاده کرد. عملگر spread یک آرایه را در عناصر خود پخش می کند.
const array = [1, 2, 3];
const newArray = [0, …array, 4, 5];
// …array spreads [1, 2, 3] into 1, 2, 3
console.log(newArray);
// returns [1, 2, 3, 4, 5]
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
بدون عملگر spread، آرایه اصلی در آرایه جدید تودرتو می شود.
const array = [1, 2, 3];
const newArray = [0, array, 4, 5];
console.log(newArray);
// returns [0, [1, 2, 3], 4, 5];
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
روشهای آرایه تکراری
روشهای آرایه تکراری، یک تابع ارائه شده را روی هر عنصر در یک آرایه فراخوانی میکنند و یک مقدار یا آرایه جدید را برمیگردانند. تابع ارائه شده با سه آرگومان فراخوانی می شود: عنصر فعلی، شاخص عنصر فعلی و آرایه اصلی که متد بر روی آن فراخوانی شده است.
function callbackFunction (currentElement, currentIndex, originalArray) {
// function body
}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
چند نمونه از روشهای آرایه تکراری عبارتند از: «یافتن»، «فیلتر»، «نقشه» و «کاهش».
'پیدا کردن()'
متد 'find' یک تابع را به عنوان آرگومان می گیرد و اولین عنصر آرایه را که شرایط تابع را برآورده می کند، برمی گرداند.
const numbers = [5, 10, 15, 20, 25];
numbers.find(number => number > 15);
// returns 20;
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
'filter()'
متد 'filter' مشابه روش 'find' است، اما در عوض آرایه ای از تمام عناصری را که شرایط تابع داده شده را برآورده می کنند، برمی گرداند.
const numbers = [5, 10, 15, 20, 25];
numbers.filter(number => number > 15);
// returns [20, 25];
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
'نقشه()'
متد 'map' یک آرایه جدید را با نتایج فراخوانی تابع در هر عنصر در آرایه اصلی برمی گرداند.
const numbers = [1, 2, 3, 4, 5];
numbers.map(number => number * number);
// returns [1, 4, 9, 16, 25]
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
'كاهش دادن()'
متد 'reduce' یک تابع و یک مقدار اولیه را به عنوان آرگومان می گیرد. تابع ارائه شده چهار آرگومان دریافت می کند: انباشت کننده، مقدار فعلی، شاخص جاری و آرایه اصلی. مقدار اولیه ارائه شده، مقدار انباشت کننده برای اولین عنصر آرایه است. نتیجه تابع برای هر عنصر به عنوان مقدار انباشته برای عنصر بعدی در آرایه استفاده می شود. اگر مقدار اولیه ارائه نشده باشد، انباشتگر روی عنصر اول آرایه تنظیم می شود و تابع callback با شروع از عنصر دوم فراخوانی می شود.
const numbers = [1, 2, 3, 4, 5]
numbers.reduce(((acc, number) => acc + number), 0);
// returns 15
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
آرایه ها چیست؟
آرایه ها ساختار داده ای هستند که مجموعه ای مرتب از عناصر را ذخیره می کند. در جاوا اسکریپت، آرایه ها به عنوان نوع خاصی از شی طبقه بندی می شوند و می توانند اعداد، رشته ها، اشیاء یا آرایه های دیگر را ذخیره کنند. عناصر موجود در یک آرایه در پرانتز مربع قرار می گیرند [ ] و از یک شاخص مبتنی بر صفر استفاده کنید. شاخص مبتنی بر صفر به این معنی است که عنصر اول یک آرایه دارای شاخص 0، عنصر دوم دارای شاخص 1 و غیره خواهد بود.
const names = ["David", "Hannah", "William"];
console.log(names[0]); // returns the first element
// returns "David"
console.log(names[1]); // returns the second element
// returns "Hannah"
console.log(names[2]); // returns the third element
// returns "William"
چگونه می توان آرایه ها را تغییر داد یا دستکاری کرد؟
شاخص عنصر در یک آرایه
یک عنصر جدید را می توان با اختصاص یک مقدار به یک شاخص خالی به آرایه اضافه کرد.
names[3] = "Eric";
console.log(names);
// returns ["David", "Hannah", "William", "Eric"]
عناصر موجود در یک آرایه را می توان با تخصیص مجدد یک مقدار جدید به یک شاخص موجود تغییر داد.
names[1] = "Juniper";
console.log(names);
// returns ["David", "Juniper", "William", "Eric"]
روش های آرایه
آرایهها را میتوان با روشهای آرایه مانند «فشار»، «pop»، «unshift»، «shift»، «slice» و «splice» تغییر داد یا دستکاری کرد.
'فشار دادن()'
متد Push یک یا چند عنصر را به عنوان آرگومان می گیرد، عناصر را به انتهای آرایه اضافه می کند و طول آرایه اصلاح شده را برمی گرداند.
names.push("Bob");
// returns 5
console.log(names);
// returns ["David", "Juniper", "William", "Eric", "Bob"]
'ترکیدن()'
متد 'pop' هیچ آرگومان نمی گیرد، آخرین عنصر آرایه را حذف می کند و عنصر حذف شده را برمی گرداند.
names.pop();
// returns "Bob"
console.log(names);
// returns ["David", "Juniper", "William", "Eric"]
'unshift()'
متد 'unshift' یک یا چند عنصر را به عنوان آرگومان می گیرد، عناصر را به ابتدای آرایه اضافه می کند و طول آرایه اصلاح شده را برمی گرداند.
names.unshift("Jack", "Jane");
// returns 6
console.log(names);
// returns ["Jack", "Jane", "David", "Juniper", "William", "Eric"]
'تغییر مکان()'
متد 'shift' هیچ آرگومان نمی گیرد، اولین عنصر یک آرایه را حذف می کند و عنصر حذف شده را برمی گرداند.
names.shift();
// returns "Jack"
console.log(names);
// returns ["Jane", "David", "Juniper", "William", "Eric"]
'تکه()'
متد 'slice' دو آرگومان اختیاری (startIndex، endIndex) می گیرد و یک آرایه جدید را با عناصر از startIndex به endIndex آرایه اصلی بازمی گرداند، اما شامل آن نمی شود.
اگر startIndex حذف شود، 0 استفاده می شود.
اگر endIndex حذف شود، از طول آرایه استفاده می شود. از اعداد شاخص منفی می توان برای شمارش معکوس از انتهای آرایه استفاده کرد.
names.slice(1, 3);
// returns ["David", "Juniper"]
names.slice(3);
// returns ["Juniper", "William", "Eric"]
names.slice(-2, 1);
// returns ["William", "Eric", "Jane"]
names.slice();
// returns ["Jane", "David", "Juniper", "William", "Eric"]
'splice()'
متد 'splice' یک یا چند آرگومان (startIndex, deleteCount, element1, element2, …) می گیرد و یک آرایه جدید حاوی تمام عناصر حذف شده را برمی گرداند. از startIndex، تعداد deleteCount عناصر حذف میشوند و آرگومانهای عنصر زیر به آرایهای که از startIndex شروع میشود، اضافه میشوند. اگر deleteCount حذف شود، تمام عناصر از startIndex تا انتهای آرایه حذف می شوند. اگر آرگومان های عنصر حذف شوند، هیچ عنصری اضافه نمی شود.
names.splice(0, 1, "Joe", "Alex");
// returns ["Jane"]
console.log(names);
// returns ["Joe", "Alex", "David", "Juniper", "William", "Eric"]
names.splice(1, 4);
// returns ["Alex", "David", "Juniper", "William"]
console.log(names);
// returns ["Joe", "Eric"]
names.splice(0, 0, "Bob", "Frank", "Maria")
// returns []
console.log(names);
// returns ["Joe", "Bob", "Frank", "Maria", "Eric"]
از آنجایی که “push”، “pop”، “unshift”، “shift و “splice” آرایه اصلی را اصلاح میکنند، به عنوان روشهای مخرب طبقهبندی میشوند. روش 'slice' آرایه اصلی را دست نخورده باقی می گذارد، بنابراین به عنوان غیر مخرب طبقه بندی می شود.
اپراتور پخش “…”
برای افزودن یا کپی کردن عناصر به یک آرایه به صورت غیر مخرب، می توان از عملگر spread استفاده کرد. عملگر spread یک آرایه را در عناصر خود پخش می کند.
const array = [1, 2, 3];
const newArray = [0, ...array, 4, 5];
// ...array spreads [1, 2, 3] into 1, 2, 3
console.log(newArray);
// returns [1, 2, 3, 4, 5]
بدون عملگر spread، آرایه اصلی در آرایه جدید تودرتو می شود.
const array = [1, 2, 3];
const newArray = [0, array, 4, 5];
console.log(newArray);
// returns [0, [1, 2, 3], 4, 5];
روشهای آرایه تکراری
روشهای آرایه تکراری، یک تابع ارائه شده را روی هر عنصر در یک آرایه فراخوانی میکنند و یک مقدار یا آرایه جدید را برمیگردانند. تابع ارائه شده با سه آرگومان فراخوانی می شود: عنصر فعلی، شاخص عنصر فعلی و آرایه اصلی که متد بر روی آن فراخوانی شده است.
function callbackFunction (currentElement, currentIndex, originalArray) {
// function body
}
چند نمونه از روشهای آرایه تکراری عبارتند از: «یافتن»، «فیلتر»، «نقشه» و «کاهش».
'پیدا کردن()'
متد 'find' یک تابع را به عنوان آرگومان می گیرد و اولین عنصر آرایه را که شرایط تابع را برآورده می کند، برمی گرداند.
const numbers = [5, 10, 15, 20, 25];
numbers.find(number => number > 15);
// returns 20;
'filter()'
متد 'filter' مشابه روش 'find' است، اما در عوض آرایه ای از تمام عناصری را که شرایط تابع داده شده را برآورده می کنند، برمی گرداند.
const numbers = [5, 10, 15, 20, 25];
numbers.filter(number => number > 15);
// returns [20, 25];
'نقشه()'
متد 'map' یک آرایه جدید را با نتایج فراخوانی تابع در هر عنصر در آرایه اصلی برمی گرداند.
const numbers = [1, 2, 3, 4, 5];
numbers.map(number => number * number);
// returns [1, 4, 9, 16, 25]
'كاهش دادن()'
متد 'reduce' یک تابع و یک مقدار اولیه را به عنوان آرگومان می گیرد. تابع ارائه شده چهار آرگومان دریافت می کند: انباشت کننده، مقدار فعلی، شاخص جاری و آرایه اصلی. مقدار اولیه ارائه شده، مقدار انباشت کننده برای اولین عنصر آرایه است. نتیجه تابع برای هر عنصر به عنوان مقدار انباشته برای عنصر بعدی در آرایه استفاده می شود. اگر مقدار اولیه ارائه نشده باشد، انباشتگر روی عنصر اول آرایه تنظیم می شود و تابع callback با شروع از عنصر دوم فراخوانی می شود.
const numbers = [1, 2, 3, 4, 5]
numbers.reduce(((acc, number) => acc + number), 0);
// returns 15