Iterate over array in proxy

Viewed 27

Good day.

I was testing stuff in Javascript with Proxies.

Currently I have this proxy

My question was, how do I iterate over this? I've tried several methods, including object.keys and forEach, which yielded nothing.

Thanks in advance

1 Answers

You need to specify an ownKeys method in the handler you're using to create the proxy or you won't be able to enumerate the keys of the proxy object.

const obj = { test: 'a' };
const handler1 = {
  ownKeys(target) {
    return Reflect.ownKeys(target);
  }
};

const proxy1 = new Proxy(obj, handler1);
console.log(Object.keys(proxy1)) // ['test']

Edit

Actually, you can use Reflect.ownKeys directly also, but you'll want to make sure the behavior is what you expect. For example, it might return length as a key as well.

Related