Доступ до масиву[-1]
У деяких мовах програмування ми можемо отримати доступ до елементів масиву за допомогою негативних індексів, відрахованих з кінця.
Наприклад ось так:
let array = [1, 2, 3];
array[-1]; // 3, останній елемент
array[-2]; // 2, за крок від кінця
array[-3]; // 1, за два кроки від кінця
Іншими словами, array[-N]
це те саме, що array[array.length - N]
.
Створіть проксі для реалізації такої поведінки.
Ось як це має працювати:
let array = [1, 2, 3];
array = new Proxy(array, {
/* ваш код */
});
alert( array[-1] ); // 3
alert( array[-2] ); // 2
// Іншу функціональність масиву слід зберегти "як є"
let array = [1, 2, 3];
array = new Proxy(array, {
get(target, prop, receiver) {
if (prop < 0) {
// навіть якщо ми намагаємося отримати доступ як arr[1]
// prop є рядком, тому його потрібно перетворити на число
prop = +prop + target.length;
}
return Reflect.get(target, prop, receiver);
}
});
alert(array[-1]); // 3
alert(array[-2]); // 2