◐ Shell
reader mode source ↗
AR
نريد أن نتيح هذا المشروع المفتوح المصدر إلى كل الناس حول العالم. من فضلك ساعدنا على ترجمة محتوى هذه السلسله للغة التى تعرفها.
بحث
بحث
الرجوع الي الدرس

الوصول إلي array[-1]

في بعض لغات البرمجة، يمكن الوصول إلي عناصر المصفوفات برقم سالب حيث تقوم بالحسبة من النهاية.

كهذا:

let array = [1, 2, 3];

array[-1]; // 3, the last element
array[-2]; // 2, one step from the end
array[-3]; // 1, two steps from the end

بطريقة أخري، فإن array[-N] هو نفسه array[array.length - N].

قم بإنشاء بروكسي لتنفيذ هذا السلوك.

هنا كيف يجب أن تعمل:

let array = [1, 2, 3];

array = new Proxy(array, {
  /* your code */
});

alert( array[-1] ); // 3
alert( array[-2] ); // 2

// السلوك الطبيعي للمصفوفات الأخري يجب أن يظل كما هو
الحل
let array = [1, 2, 3];

array = new Proxy(array, {
  get(target, prop, receiver) {
    if (prop < 0) {
      // even if we access it like arr[1]
      // prop هو نص ولذلك نريد أن نحوله
      prop = +prop + target.length;
    }
    return Reflect.get(target, prop, receiver);
  }
});


alert(array[-1]); // 3
alert(array[-2]); // 2