دانش بایت

ورود ورود

افزودن و یا حذف کردن داده از آرایه در جاوا اسکریپت

پس از ایجاد یک آرایه در زبان جاوا اسکریپت شاید قصد داشته باشید داده‌های جدیدی به آن اضافه کنید و یا این‌که بخواهید برخی داده‌های موجود در آرایه را حذف کنید. برای این‌کار توابع وجود دارند که به‌سادگی می‌توانید از آن‌ها استفاده کنید و به خروجی موردنظر خود برسید.

حذف و اضافه‌ی داده‌ها می‌تواند در انتهای آرایه، ابتدای آرایه و یا میانه‌ی آن باشد، به همین دلیل هرکدام از شرایط توابع خاص خود را دارند که به‌صورت کامل درمورد آن‌ها صحبت خواهیم کرد.

افزودن داده‌ی جدید به انتهای آرایه توسط تابع push

تابع push می‌تواند داده‌های جدید را به انتهای یک آرایه اضافه‌کند. به مثال زیر توجه کنید:

let numbers = [10, 20, 30, 40];
numbers.push(50); // افزودن یک داده به انتهای آرایه
console.log(numbers);
numbers.push(-10, 10); // افزودن دو داده به انتهای آرایه
console.log(numbers);
[10, 20, 30, 40, 50]
[10, 20, 30, 40, 50, -10, 10]

طبق مثال بالا درصورتی که خواستید چندین داده‌ی جدید را به انتهای آرایه اضافه‌کنید نیازی نیست که چندین بار از تابع push استفاده‌کنید و هربار یک داده به انتهای آرایه اضافه کنید. توسط این تابع می‌توانید چندین داده را به‌صورت هم‌زمان به آرایه اضافه کنید. تابع push طول آرایه‌ی جدید را به‌عنوان خروجی بازمی‌گرداند تا درصورت نیاز از آن استفاده کنید: 

let brands = ["BMW", "AUDI"];
let result = brands.push("FERRARI"); // افزودن یک داده به انتهای آرایه و ذخیره‌ی خروجی تابع در متغیر
console.log(brands);
console.log(`result of the push function : ${result}`);
['BMW', 'AUDI', 'FERRARI']
result of push function : 3

حذف داده از انتهای آرایه توسط تابع pop

برای حذف یک داده از انتهای آرایه در جاوا اسکریپت باید تابع pop را فراخوانی کنید. به کد زیر دقت کنید:

let numbers = [10, 20, 30, 40];
numbers.pop(); // حذف یک داده از انتهای آرایه
console.log(numbers);
numbers.push(); // حذف یک داده از انتهای آرایه
console.log(numbers);
[10, 20, 30]
[10, 20]

توسط تابع pop فقط می‌شود یک داده را از انتهای آرایه حذف کرد و برای حذف کردن بیش‌تر از یک داده باید این تابع را چندین‌بار فراخوانی کرد. تابع pop پس از حذف آخرین داده، آن را به‌عنوان خروجی بازمی‌گرداند تا درصورت نیاز مقدار داده‌ای که حذف شده‌است را داشته باشید :

let numbers = [10, 20, 30, 40];
let result = numbers.pop(); // حذف یک داده از انتهای آرایه و ذخیره‌ی خروجی در یک متغیر
console.log(numbers);
console.log(`result of the pop function : ${result}`);
[10, 20, 30]
result of the pop function : 40

افزودن داده‌ی جدید به ابتدای آرایه توسط تابع unshift

با فراخوانی تابع unshift می‌توانید داده‌های جدیدی به ابتدای آرایه اضافه‌کنید. مانند تابع push می‌توانید بیش‌از یک مقدار به‌عنوان ورودی به تابع unshift دهید تا با یک‌بار فراخوانی این تابع، بیش‌از یک داده را به ابتدای آرایه اضافه کنید:

let numbers = [10, 20, 30, 40];
numbers.unshift(5); // افزودن یک داده به ابتدای آرایه
console.log(numbers);
numbers.unshift(25, 35); // افزودن دو داده به ابتدای آرایه
console.log(numbers);
[5, 10, 20, 30, 40]
[25, 35, 5, 10, 20, 30, 40]

خروجی تابع unshift طول جدید آرایه پس از اضافه‌شدن مقادیر خواهد بود که می‌توانید درصورت نیاز از آن استفاده کنید:

let brands = ["BMW", "AUDI"];
let result = brands.unshift("FERRARI"); // افزودن یک داده به ابتدای آرایه و ذخیره‌ی خروجی تابع در متغیر
console.log(brands);
console.log(`result of the unshift function : ${result}`);
['FERRARI', 'BMW', 'AUDI']
result of unshift function : 3

حذف داده از ابتدای آرایه توسط تابع shift

تابع shift با هربار اجرا شدن می‌تواند یک داده از ابتدای آرایه حذف‌کند. پس از فراخوانی این تابع محتوای موجود در اندیس صفرم آرایه را از دست خواهید داد و حذف خواهد شد:

let numbers = [10, 20, 30, 40];
numbers.shift(); // حذف یک داده از ابتدای آرایه
console.log(numbers);
numbers.shift(); // حذف یک داده از ابتدای آرایه
console.log(numbers);
[20, 30, 40]
[30, 40]

با هربار اجرا شدن تابع shift نمی‌توانید بیش‌تر از یک داده را از ابتدای آرایه حذف کنید و اگر می‌خواهید توسط این تابع چندین داده را از ابتدای آرایه حذف‌کنید باید آن را چندین‌بار فراخوانی کنید. تابع shift پس از اجرا شدن، داده‌ی حذف شده از آرایه را به‌عنوان خروجی بازمی‌گرداند تا درصورت نیاز از آن استفاده شود:

let numbers = [10, 20, 30, 40];
let result = numbers.shift(); // حذف یک داده از ابتدای آرایه و ذخیره‌ی خروجی در یک متغیر
console.log(numbers);
console.log(`result of the shift function : ${result}`);
 [20, 30, 40]
 result of the shift function : 10

حذف داده از آرایه توسط تابع splice

توسط تابع splice شما قادر خواهیدبود از یک تا هرتعداد داده که نیاز است از آرایه حذف کنید. با توابع pop و shift تنها می‌توانستیم از ابتدای و انتهای آرایه، آن‌هم فقط یک داده را حذف‌کنیم ولی با تابع splice می‌توانیم حتی از میانه‌ی آرایه هر تعدادی که خواستیم داده حذف‌کنیم. برای فراخوانی این تابع حداقل باید به آن دو عدد را به عنوان ورودی داد، اولین ورودی شماره اندیسی است که می‌خواهید عملیات حذف را از آن اندیس شروع‌کنید و ورودی دوم آن هم تعداد داده‌هایی است که می‌خواهید حذف کنید:

let numbers = [10, 20, 30, 40, 50];
console.log(numbers)
numbers.splice(1, 2); // از اندیس شماره ۱ آرایه شروع به حذف ۲ داده می‌کند
console.log(numbers);
[10, 20, 30, 40, 50]
[10, 40, 50]

خروجی تابع splice داده‌هایی است که پس از اجراشدن این تابع حذف شدند:

let numbers = [10, 20, 30, 40, 50];
console.log(numbers)
let result = numbers.splice(1, 2); // حذف ۲ داده با شروع از اندیس شماره ۱ و ذخیره‌ی خروجی در یک متغیر
console.log(numbers);
console.log(result);
[10, 20, 30, 40, 50]
[10, 40, 50]
[20, 30]

افزودن داده به آرایه توسط تابع splice

تابع splice علاوه‌بر این‌که می‌تواند تعدادی داده را از آرایه حذف‌کند، می‌تواند داده‌های جدیدی را هم به آرایه اضافه‌کند. برخلاف توابع push و unshift که با آن‌ها می‌توانستیم داده‌های جدیدی را تنها به ابتدا و انتهای آرایه اضافه‌کنیم، توسط این تابع می‌توانیم هرتعداد داده‌ی جدید که خواستیم به هرجای آرایه اضافه کنیم. داده‌های جدید را در قالب ورودی‌های سوم و چهارم و... به آرایه می‌دهیم:

let numbers = [10, 20, 30, 40, 50];
console.log(numbers)
numbers.splice(2, 0, 5, 6); // اعداد ۵ و ۶ را از اندیس شماره ۲ به آرایه اضافه می‌کند
console.log(numbers);
[10, 20, 30, 40, 50]
[10, 20, 5, 6, 30, 40, 50]

آیا با تابع splice می‌توان به‌صورت هم‌زمان هم داده اضافه کرد و هم داده حذف کرد؟

بله، برای این‌کار کافی‌است که ورودی دوم تابع عدد «صفر» نباشد تا تعدادی از داده‌ها حذف شوند و ورودی‌های سوم چهارم و ... به تعداد موردنیاز وجود داشته‌باشند تا به آرایه اضافه‌شوند:

let numbers = [10, 20, 30, 40, 50];
console.log(numbers)
numbers.splice(2, 2, 5, 6); // اعداد ۵ و ۶ را از پس از حذف دو داده از اندیس شماره ۲ به آرایه اضافه می‌کند
console.log(numbers);
[10, 20, 30, 40, 50]
[10, 20, 5, 6, 50]
برچسب‌ها :
جاوا اسکریپت | javascript

مطالب مشابه

جاوا اسکریپت آرایه‌ها در جاوا اسکریپت
جاوا اسکریپت ساختارهای شرطی در جاوا اسکریپت

دوره‌های مشابه

دوره آموزش جاوا اسکریپت دوره آموزش جاوا اسکریپت