DEV Community

Mitchell
Mitchell

Posted on • Edited on

Proxy - JavaScript Challenges

You can find all the code in this post in the repo Github.


Proxy related challenges


Access negative index

Proxy can intercept operations of objects. We can use it to rewriting or enhancing the behavior of accessing and setting properties.

/**
 * @param {Array} arr
 */

function withNegativeIndex(arr) {
  return new Proxy(arr, {
    get(target, property, receiver) {
      const index = Number(property);

      if (index < 0) {
        property = target.length + index;
      }

      return Reflect.get(target, property, receiver);
    },
  });
}

// Usage example
const fruits = ["apple", "banana", "orange"];
const proxiedFruits = withNegativeIndex(fruits);

console.log(proxiedFruits[-1]); // => 'orange'
console.log(proxiedFruits[-2]); // => 'banana'
console.log(proxiedFruits[-3]); // => 'apple'
console.log(proxiedFruits[0]); // => 'apple'
console.log(proxiedFruits[1]); // => 'banana'
console.log(proxiedFruits[2]); // => 'orange'
Enter fullscreen mode Exit fullscreen mode

Reference

Top comments (0)

SurveyJS custom survey software

JavaScript Form Builder UI Component

Generate dynamic JSON-driven forms directly in your JavaScript app (Angular, React, Vue.js, jQuery) with a fully customizable drag-and-drop form builder. Easily integrate with any backend system and retain full ownership over your data, with no user or form submission limits.

Learn more