تختلف قراءة خاصية باسم سالب واحد عن طلب العنصر الأخير في JavaScript. [1]
استخدم at مع سالب واحد لقراءة آخر عنصر، وافصل ذلك عن الأقواس التي تقرأ خاصية اسمها سالب واحد. [1]
الخلاصة السريعة
- تعد at الفهارس السالبة من نهاية المصفوفة؛ سالب واحد للأخير وسالب اثنين للسابق له. [1]
- تحول الأقواس المفتاح العددي إلى نص؛ يمكن أن توجد خاصية مستقلة باسم سالب واحد. [3]
- تعيد at القيمة undefined عندما يقع الموضع المحسوب خارج حدود الطول. [2]
- تقرأ at القيمة المطلوبة؛ لا تحذف العنصر ولا تنقص طول هذه المصفوفة العادية. [2]
عدّ المواضع من النهاية
تعد at الفهارس السالبة من نهاية المصفوفة؛ سالب واحد للأخير وسالب اثنين للسابق له. [1]
نفّذ المقاطع بالترتيب في بيئة تدعم at. بإضافة الطول، ثلاثة، إلى سالب واحد نصل إلى الموضع اثنين. [1]
مرّر الشيفرة أفقيًا عند الحاجة.
const notes = ["note-a", "note-b", "note-c"];
console.log(notes.at(-1)); // "note-c"
console.log(notes.at(-2)); // "note-b"اختبر الخاصية المسماة صراحة
تحول الأقواس المفتاح العددي إلى نص؛ يمكن أن توجد خاصية مستقلة باسم سالب واحد. [3]
نضيف عمدًا خاصية بالاسم النصي الظاهر في الشيفرة، ثم نقرأها بمفتاح عددي وبمفتاح نصي. تعطي القراءتان القيمة نفسها لأنهما تطلبان الاسم نفسه. هذا اختبار لمعنى المفتاح داخل الأقواس، وليس طريقة لترقيم عناصر المصفوفة من نهايتها. [3]
لذلك لا تقل إن الأقواس مع سالب واحد تعيد undefined دائمًا؛ قد توجد تلك الخاصية كما في اختبارنا. [1]
مرّر الشيفرة أفقيًا عند الحاجة.
notes["-1"] = "label";
console.log(notes[-1]); // "label"
console.log(notes["-1"]); // "label"
console.log(notes.at(-1)); // "note-c"راجع الطول قبل تفسير undefined
تعيد at القيمة undefined عندما يقع الموضع المحسوب خارج حدود الطول. [2]
في القائمة نفسها يصل سالب ثلاثة إلى البداية؛ سالب أربعة يتجاوزها، وثلاثة يتجاوز آخر موضع غير سالب. افحص كل طلب منفصلًا. يعيد اختبار القائمة الفارغة undefined أيضًا، إذ لا يوجد موضع داخل حدودها. [2]
هذه أمثلة بفهارس صحيحة محددة؛ لا نعمم منها قواعد تحويل النصوص أو الكسور إلى فهارس. [2]
مرّر الشيفرة أفقيًا عند الحاجة.
console.log(notes.at(-3)); // "note-a"
console.log(notes.at(-4)); // undefined
console.log(notes.at(3)); // undefined
console.log([].at(-1)); // undefinedتحقق من بقاء العنصر
تقرأ at القيمة المطلوبة؛ لا تحذف العنصر ولا تنقص طول هذه المصفوفة العادية. [2]
أعد قراءة الاسم الأخير، ثم اطبع الطول والقيمة عند الموضع اثنين. تبقى النتائج كما كانت. وظيفة الخطوة الأخيرة فصل استرجاع قيمة عن تعديل بنية القائمة؛ أمثلتنا مصفوفة عادية، لا كائنًا يعترض الوصول إلى خصائصه. [2]
مرّر الشيفرة أفقيًا عند الحاجة.
console.log(notes.at(-1)); // "note-c"
console.log(notes.length); // 3
console.log(notes[2]); // "note-c"المصادر ومتابعة القراءة
- MDN: الفهرسة النسبية باستخدام at (يفتح في نافذة جديدة)developer.mozilla.org
- ECMAScript: خطوات القراءة وفحص الحدود (يفتح في نافذة جديدة)tc39.es
- MDN: أسماء الخصائص والأقواس (يفتح في نافذة جديدة)developer.mozilla.org
أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.