You can find all the code in this post at the repo Github.
/** * @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'
The above is the detailed content of Proxy - JavaScript Challenges. For more information, please follow other related articles on the PHP Chinese website!