Ми хочемо зробити цей проєкт з відкритим кодом доступним для людей у всьому світі.

Допоможіть перекласти цей підручник вашою мовою!

назад до уроку

Доступ до масиву[-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