طريقة لإلغاء تغيير صفائف جافا سكريبت

نشرت: 2025-12-17

عند البرمجة بلغة JavaScript، تعد المصفوفات إحدى هياكل البيانات الأكثر حيوية ومرونة المتاحة لك. إنها تسمح للمطورين بتخزين مجموعات البيانات المطلوبة ومعالجتها بكفاءة. من بين الطرق المتنوعة التي توفرها JavaScript لإدارة المصفوفات، تبرزالدالة unshift()‎ كأداة مفيدة بشكل خاص لإضافة عناصر إلى بداية المصفوفة.

ليرة تركية؛ د

يضيف التابع unshift() ‎ في JavaScript عنصرًا واحدًا أو أكثر إلى بداية المصفوفة ، مما يؤدي إلى تحويل العناصر الأصلية نحو فهارس أعلى. يقوم بتعديل المصفوفة الأصلية وإرجاع الطول الجديد للمصفوفة. يعد هذا مفيدًا بشكل خاص عندما تريد تحديد أولويات المعلومات أو مدخلات البيانات الأحدث. إذا كنت تهدف إلى تحسين الأداء، خاصة مع مجموعات البيانات الكبيرة، ففكر في الآثار المترتبة على الأداء بسبب تغيير العناصر.

فهم طريقة unshift()

طريقة unshift() هي عكس طريقةPush(). بينما تضيفالدالة Push()‎ عناصر إلى نهاية المصفوفة،فإن الدالة unshift()‎ تضيفها إلى البداية. يتم استخدامه غالبًا في السيناريوهات التي يكون فيها ترتيب العناصر مهمًا، مثل:

  • إضافة رؤوس أو معلومات وصفية إلى القوائم
  • إجراءات المستخدم المسبقة في السجل
  • تحديد أولويات المهام الأخيرة في تطبيقات إدارة المهام

إليك مثال أساسي:

 let fruits = ['apple', 'banana']; fruits.unshift('orange'); console.log(fruits); // ['orange', 'apple', 'banana'] كما ترون، let fruits = ['apple', 'banana']; fruits.unshift('orange'); console.log(fruits); // ['orange', 'apple', 'banana']

"البرتقالي" موجود الآن في بداية المصفوفة.

بناء الجملة والمعلمات

إن بناء جملة استخدام unshift() واضح ومباشر:

 أين: array.unshift(element1, element2, ..., elementN)

  • element1، …، elementN هي القيم التي تريد إضافتها إلى مقدمة المصفوفة.
  • تقوم الطريقة بإرجاع الطول الجديد للمصفوفة بعد إضافة العناصر.

عناصر متعددة؟ لا مشكلة!

يمكنك إضافة عناصر متعددة دفعة واحدة:

 let numbers = [4, 5]; numbers.unshift(1, 2, 3); console.log(numbers); // [1, 2, 3, 4, 5] تجعل هذه الميزة من السهل للغاية تنظيم البيانات بتسلسلات منطقية ومرتبة حيث تأتي العناصر الأحدث أو الأكثر أهمية أولاً. let numbers = [4, 5]; numbers.unshift(1, 2, 3); console.log(numbers); // [1, 2, 3, 4, 5]

حالات الاستخدام العملي لـ unshift()

1. أنظمة تتبع المهام

في أنظمة تتبع المهام (مثل Trello أو Asana)، غالبًا ما تظهر المهام الجديدة في أعلى قائمة المهام. باستخدام unshift() ، يمكنك بسهولة إضافة أحدث المهام إلى مقدمة القائمة بدلاً من نهايتها.

 let tasks = ['Task C', 'Task D']; tasks.unshift('Task A', 'Task B'); console.log(tasks); // ['Task A', 'Task B', 'Task C', 'Task D'] 2. تسجيل الأحداث let tasks = ['Task C', 'Task D']; tasks.unshift('Task A', 'Task B'); console.log(tasks); // ['Task A', 'Task B', 'Task C', 'Task D']

في أنظمة تتبع الأحداث أو تتبع الأنشطة، فإن عرض أحدث الأنشطة أولاً يمكن أن يجعل السجلات أكثر سهولة. يمكن أن يساعد unshift() في إدارة ترتيب بيانات الأحداث ليعكس النشاط الحديث في الأعلى.

 let activityLog = ['Login', 'Viewed Dashboard']; activityLog.unshift('Opened App'); console.log(activityLog); // ['Opened App', 'Login', 'Viewed Dashboard'] 3. قوائم التنقل التفصيلية let activityLog = ['Login', 'Viewed Dashboard']; activityLog.unshift('Opened App'); console.log(activityLog); // ['Opened App', 'Login', 'Viewed Dashboard'] 

تعرض بعض مواقع الويب مسار التنقل ديناميكيًا عن طريق تجميع الصفحات التي تم التنقل فيها. بما أن التحديد الأحدث ينتمي إلى البداية، فإن unshift() ‎ طريقة رائعة لإدارة ذلك:

 let breadcrumb = ['Home', 'Products']; breadcrumb.unshift('Login'); console.log(breadcrumb); // ['Login', 'Home', 'Products'] اعتبارات الأداء let breadcrumb = ['Home', 'Products']; breadcrumb.unshift('Login'); console.log(breadcrumb); // ['Login', 'Home', 'Products']

على الرغم من أن unshift() ‎ ملائم، إلا أنه من المهم مراعاة الأداء، خصوصًا عند العمل مع مصفوفات كبيرة. نظرًا لأن unshift يعدل المصفوفة الأصلية ويتعين عليه إعادة فهرسة كل عنصر موجود لإفساح المجال للعناصر الجديدة، فقد تكون عملية مكلفة نسبيًا.

وهذا يختلف عن أساليب مثل push() ، والتي تُلحق فقط بالنهاية ولا تتطلب ازدحامًا مروريًا لإعادة ترتيب الفهرس. إذا كان الأداء يمثل مصدر قلق، وكنت تتعامل مع مجموعات بيانات كبيرة، فقد ترغب في التفكير في استراتيجيات مثل:

  • استخدام بنيةالقائمة المرتبطةفي الحالات التي تتطلب عمليات الإضافة السريعة
  • عكس المصفوفة عند الإخراج بدلاً من تعديلها بشكل متكرر

استخدام البدائل لإلغاء unshift()

على الرغم من أن unshift() مدعوم بشكل مباشر في JavaScript، فقد تكون هناك سيناريوهات تفضل فيها عدم تغيير المصفوفة الأصلية. غالبًا ما يميل مطورو JavaScript نحو الثبات، خاصة في نماذج React والبرمجة الوظيفية. في مثل هذه الحالات، استخدم عامل الانتشار:

 const oldArray = [10, 20, 30]; const newArray = [0, ...oldArray]; console.log(newArray); // [0, 10, 20, 30] بهذه الطريقة، const oldArray = [10, 20, 30]; const newArray = [0, ...oldArray]; console.log(newArray); // [0, 10, 20, 30]

يبقى oldArray دون تغيير، بينما يدمج newArray القيم الجديدة في المقدمة.

الفرق بين unshift() وطرق المصفوفات الأخرى

توفر JavaScript أساليب مصفوفات متعددة، ومعرفة متى يتم استخدام كل منها هو المفتاح لكتابة تعليمات برمجية نظيفة ومحسنة:

طريقة وصف يتحول الأصلي؟
push() يضيف العناصر إلى النهاية نعم
pop() يزيل العنصر من النهاية نعم
shift() يزيل العنصر من الأمام نعم
unshift() يضيف العناصر إلى الأمام نعم

دعم المتصفح

طريقة unshift() مدعومة جيدًا عبر جميع المتصفحات الحديثة، بما في ذلك Chrome وFirefox وSafari وEdge وحتى Internet Explorer (يعود تاريخه إلى IE5). لذا، ما لم تكن تستهدف أنظمة قديمة للغاية، فمن الآمن استخدام هذه الطريقة في بيئات الإنتاج.

نصائح للمبتدئين

  1. كن على دراية بتغيير المصفوفة: نظرًا لأن unshift() يؤثر بشكل مباشر على المصفوفة الأصلية، تأكد من موافقتك على تعديل المصفوفة قبل استخدامها.
  2. اختبار الأداء: إذا كنت تقوم بإلغاء النقل داخل حلقة في مجموعات بيانات كبيرة، فاختبر الأداء حيث يمكن تكديس هذه العمليات.
  3. ضع في اعتبارك سهولة القراءة: عند التعاون على قواعد تعليمات برمجية كبيرة، تأكد من أن استخدامك لـ unshift() يعزز الوضوح وعدم الارتباك.

خاتمة

تعد طريقة unshift() طريقة قوية وبسيطة للتعامل مع المصفوفات من خلال العناصر المعلقة. على الرغم من أنها قد تبدو وكأنها لاعب صغير في مجموعة أدوات JavaScript الأوسع، إلا أنها تؤدي أدوارًا حاسمة في العديد من أنماط البرمجة، بدءًا من واجهات المستخدم وحتى خوارزميات معالجة البيانات. إن معرفة متى وكيفية استخدام unshift() لا يجعل التعليمات البرمجية الخاصة بك أكثر تعبيرًا فحسب، بل أيضًا أكثر كفاءة عند استخدامها بعناية وعناية.

مع استمرار تطور JavaScript، ومع تعامل المطورين مع هياكل وأطر بيانات أكثر تعقيدًا، يظل إتقان أساليب المصفوفة الأساسية أمرًا بالغ الأهمية. لذا، في المرة القادمة التي تحتاج فيها إلى وضع شيء ما في مقدمة السطر، تذكر unshift() هو عامل التشغيل الذي تفضله!