darsga qaytish

array[-1] ga murojaat

Ba’zi dasturlash tillarida biz massiv elementlariga oxiridan boshlab manfiy indekslar yordamida kirishimiz mumkin.

Bu kabi:

let array = [1, 2, 3];

array[-1]; // 3, oxirgi element
array[-2]; // 2, oxiridan bir qadam oldingi
array[-3]; // 1, oxiridan ikki qadam oldingi

Boshqacha qilib aytganda, array[-N] array[array.uzunligi - N] bilan bir xil.

Ushbu xatti-harakatni amalga oshirish uchun proksi-server yarating.

Bu shunday ishlashi kerak:

let array = [1, 2, 3];

array = new Proxy(array, {
  /* sizning kodingiz */
});

alert(array[-1]); // 3
alert(array[-2]); // 2

// Massivning boshqa funksiyalari "xuddi shunday" saqlanishi kerak
let array = [1, 2, 3];

array = new Proxy(array, {
  get(target, prop, receiver) {
    if (prop < 0) {
      // biz unga arr [1] kabi kirsak ham
      // prop - bu satr, shuning uchun uni raqamga aylantirish kerak
      prop = +prop + target.length;
    }
    return Reflect.get(target, prop, receiver);
  },
});

alert(array[-1]); // 3
alert(array[-2]); // 2