الوصول إلي 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