[ Web Proxy ]
URL:
Viewing: https://javascript.info/task/array-negative [Back]  [Original]

Accessing array[-1]
EN

We want to make this open-source project available for people all around the world.

Help to translate the content of this tutorial to your language!

    Search on Javascript.info:
    Search in the tutorial:
    Light themeDark theme
    DanskEnglishEspaolFranaisIndonesiaItalianoTrkeOzbek
    back to the lesson

    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.

    Thats 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"
    solution
    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

    Web Proxy Viewer  |  New URL  |  Original Page