Derse geri dön

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