• ARعربي
  • ENEnglish
  • ESEspañol
  • FAفارسی
  • FRFrançais
  • IDIndonesia
  • ITItaliano
  • JA日本語
  • KO한국어
  • RUРусский
  • TRTürkçe
  • UKУкраїнська
  • ZH简体中文

ما قصد داریم این پروژهٔ متن‌باز را در دسترس همهٔ مردم در سرتاسر دنیا قرار دهیم.

به ترجمهٔ محتوای این آموزش به زبان خودتان کمک کنید/a>.

    نقشه آموزش
    اشتراک گذاری
    • آموزش
    • زبان جاوااسکریپت
    • متفرقه
    • Proxy and Reflect
    بازگشت به درس
    این محتوا تنها در این زبان‌ها موجود است: عربي, English, Español, Français, Italiano, 日本語, 한국어, Русский, Türkçe, Українська, 简体中文. لطفاً به ما

    Accessing array[-1]

    In some programming languages, we can access array elements using negative indexes, counted from the end.

    Like this:

    let array = [1, 2, 3];
    
    array[-1]; // 3, the last element
    array[-2]; // 2, one step from the end
    array[-3]; // 1, two steps from the end

    In other words, array[-N] is the same as array[array.length - N].

    Create a proxy to implement that behavior.

    That’s how it should work:

    let array = [1, 2, 3];
    
    array = new Proxy(array, {
      /* your code */
    });
    
    alert( array[-1] ); // 3
    alert( array[-2] ); // 2
    
    // Other array functionality should be kept "as is"
    let array = [1, 2, 3];
    
    array = new Proxy(array, {
      get(target, prop, receiver) {
        if (prop < 0) {
          // even if we access it like arr[1]
          // prop is a string, so need to convert it to number
          prop = +prop + target.length;
        }
        return Reflect.get(target, prop, receiver);
      }
    });
    
    
    alert(array[-1]); // 3
    alert(array[-2]); // 2
    • © 2007—2025  Ilya Kantor
    • دربارهٔ پروژه
    • تماس با ما