freeCodeCamp/guide/arabic/certifications/javascript-algorithms-and-d.../basic-javascript/stand-in-line/index.md

73 lines
4.8 KiB
Markdown
Raw Normal View History

---
title: Stand in Line
localeTitle: قف على الصف
---
![:triangular_flag_on_post:](https://forum.freecodecamp.com/images/emoji/emoji_one/triangular_flag_on_post.png?v=3 ": triangular_flag_on_post:") تذكر استخدام **`Read-Search-Ask`** إذا واجهتك مشكلة. حاول إقران البرنامج ![:busts_in_silhouette:](https://forum.freecodecamp.com/images/emoji/emoji_one/busts_in_silhouette.png?v=3 ": busts_in_silhouette:") واكتب الكود الخاص بك ![:pencil:](https://forum.freecodecamp.com/images/emoji/emoji_one/pencil.png?v=3 ":قلم:")
### ![:checkered_flag:](https://forum.freecodecamp.com/images/emoji/emoji_one/checkered_flag.png?v=3 ":العلم متقلب:") شرح المشكلة:
في علوم الكمبيوتر ، ائمة الانتظار_ هي **بنية بيانات** مجردة حيث يتم حفظ العناصر بالترتيب. يمكن إضافة عناصر جديدة في الجزء الخلفي من **قائمة الانتظار** ويتم أخذ العناصر القديمة من أمام **قائمة الانتظار** .
اكتب دالة `nextInLine` والتي تأخذ صفيف ( **arr** ) ورقم ( **item** ) كوسيطة. أضف الرقم إلى نهاية الصفيف ، ثم أزل أول عنصر في الصفيف. يجب أن تقوم الدالة `nextInLine` بإرجاع العنصر الذي تمت إزالته.
* تغيير الرمز أدناه `//Your Code here` `//Change this line` .
* تأكد من أنك تقوم بتحرير داخل وظيفة `nextInLine` .
* استخدم وظيفة مصفوفة تعلمتها لإضافة **العنصر** إلى نهاية صفيف **arr** .
* استخدم وظيفة مصفوفة تعلمتها لإزالة العنصر الأول من صفيف **arr** .
* إرجاع العنصر إزالتها.
#### روابط ذات صلة
* [تحدي: التعامل مع صفائف بدفع ()](http://www.freecodecamp.com/challenges/manipulate-arrays-with-push)
* [تحدي: التعامل مع صفائف مع shift ()](http://www.freecodecamp.com/challenges/manipulate-arrays-with-shift)
* [التحدي: تمرير القيم إلى دالات مع الوسيطات](http://www.freecodecamp.com/challenges/passing-values-to-functions-with-arguments)
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": speech_balloon:") تلميح: 1
تضيف طريقة `push()` عنصرًا إلى نهاية صفيف.
> اول أن تحل المشكلة الآن_
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": speech_balloon:") تلميح: 2
تقوم طريقة `shift()` بإزالة العنصر الأول من المصفوفة. كما تقوم بإرجاع العنصر الذي تمت إزالته.
> اول أن تحل المشكلة الآن_
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": speech_balloon:") تلميح: 3
وظيفة `nextInLine` يستخدم **آر** **والبند.** هذه هي ما ستستخدمه الاختبارات لتمرير عناصر الصفيف التي سيختبرونها. انها تسمح للوظيفة لتكون قابلة لإعادة الاستخدام. لا تجزئ أي من الاختبارات داخل الوظيفة.
> اول أن تحل المشكلة الآن_
## تنبيه المفسد!
![علامة تحذير](//discourse-user-assets.s3.amazonaws.com/original/2X/2/2d6c412a50797771301e7ceabd554cef4edcd74d.gif)
**الحل في المستقبل!**
## ![:beginner:](https://forum.freecodecamp.com/images/emoji/emoji_one/beginner.png?v=3 ":مبتدئ:") الحل الأساسي للكود:
`function nextInLine(arr, item) {
// Your code here
arr.push(item);
var removed = arr.shift();
return removed; // Change this line
}
`
### شرح الشفرة:
* دفع **البند** في نهاية **arr** .
* استدعاء الأسلوب `shift()` على **arr** للحصول على العنصر الأول وتخزينها في **إزالتها** .
* العودة **إزالتها** .
**مثال تشغيل**
* اختبار `nextInLine([2,1]);` أشواط.
* يتم `nextInLine` الدالة `nextInLine` . **arr** يصبح \[2\]. يصبح **البند** 1.
* `arr.push(item);` يدفع 1 إلى \[2\]. إذن **صار arr** الآن \[2،1\].
* `var removed = arr.shift();` يزيل العنصر الأول. إذن **arr** هو الآن \[1\]. تمت إزالة 2 ويتم تخزينها في **إزالتها** .
* `return removed;` 2 يتم إرجاعها.
**_ملاحظة_** : أنت لا تحتاج فعليًا إلى **إزالة** المتغير. يمكن إرجاع العنصر الذي تمت إزالته مباشرةً باستخدام `return arr.shift();` .