PÅÃstup k poli[-1]
V nÄkterých programovacÃch jazycÃch můžeme pÅistupovat k prvkům pole pomocà záporných indexů, které se poÄÃtajà od konce.
NapÅÃklad:
let pole = [1, 2, 3];
pole[-1]; // 3, poslednà prvek
pole[-2]; // 2, jeden krok od konce
pole[-3]; // 1, dva kroky od konce
Jinými slovy, pole[-N] je totéž jako pole[pole.length - N].
VytvoÅte proxy, která bude toto chovánà implementovat.
MÄla by fungovat takto:
let pole = [1, 2, 3];
pole = new Proxy(pole, {
/* váš kód */
});
alert( pole[-1] ); // 3
alert( pole[-2] ); // 2
// Ostatnà funkcionalita pole by mÄla zůstat nezmÄnÄná
let pole = [1, 2, 3];
pole = new Proxy(pole, {
get(cÃl, vlastnost, pÅÃjemce) {
if (vlastnost < 0) {
// i když k poli pÅistupujeme pÅes pole[1],
// vlastnost je ÅetÄzec, takže jej musÃme konvertovat na ÄÃslo
vlastnost = +vlastnost + cÃl.length;
}
return Reflect.get(cÃl, vlastnost, pÅÃjemce);
}
});
alert(pole[-1]); // 3
alert(pole[-2]); // 2