array[-1]'e EriÅmek
Bazı dillerde, dizi elemanlarına sondan sayılarak negatif indekslerle eriÅebiliriz.
Åöyle:
let array = [1, 2, 3];
array[-1]; // 3, son eleman
array[-2]; // 2, sondan bir önceki eleman
array[-3]; // 1, sondan iki önceki eleman
BaÅka bir deyiÅle, array[-N] ifadesi array[array.length - N] ile aynıdır.
Bu davranıÅı uygulamak için bir proxy oluÅturun.
Åöyle çalıÅmalı:
let array = [1, 2, 3];
array = new Proxy(array, {
/* kodunuz */
});
alert( array[-1] ); // 3
alert( array[-2] ); // 2
// Geri kalan dizi(array) özelliÄi "olduÄu gibi" kalmalıdır
let array = [1, 2, 3];
array = new Proxy(array, {
get(target, prop, receiver) {
if (prop < 0) {
// buna arr[1] gibi eriÅsek bile
// prop bir yazıdır(string), o zaman onu bir numaraya(number) çevirmeliyiz
prop = +prop + target.length;
}
return Reflect.get(target, prop, receiver);
}
});
alert(array[-1]); // 3
alert(array[-2]); // 2