Interesting, on my system I consistently see Set iteration is faster (I replayed it many times). I'm in Chrome 85, Linux. This might be temporary.
> `new Set(Object.keys(obj))` That creates two objects and an iteration (will the engine optimize that away?), while `Object.keySet` (or similar) would surely create a single object. #!/JoePea On Sun, Oct 18, 2020 at 10:19 AM Jordan Harband <[email protected]> wrote: > > `new Set(Object.keys(obj))` seems pretty straightforward - I doubt it's worth > adding something to the language just to make that shorter. > > Separately, if you're looking for a deduped O(1) lookup of key presence, you > already have _an object_ - `Object.prototype.hasOwnProperty.call(obj, key)`. > > On Sun, Oct 18, 2020 at 8:28 AM Ehab Alsharif <[email protected]> wrote: >> >> Other than the fact that Object.keys existed really before Sets, you are >> comparing apples and oranges here in your benchmarks. >> the include method has to scan the array in order to find elements, but sets >> are objects which are just hash tables. >> Also you typically don't get the keys array to check that a key is there, >> you can do that directly using the object you have. >> Another thing is that the typical use case for Object.keys is to get an >> iterator over the keys, returning a set for that purpose does not serve that >> purpose directly. >> >> On Sat, Oct 17, 2020 at 4:51 AM #!/JoePea <[email protected]> wrote: >>> >>> Sets are faster, even for tiny lists of four items. See the perf tests >>> (tested in Chrome): >>> >>> https://twitter.com/trusktr/status/1315848017535098880 >>> >>> https://twitter.com/trusktr/status/1317281652540731392 >>> >>> #!/JoePea >>> _______________________________________________ >>> es-discuss mailing list >>> [email protected] >>> https://mail.mozilla.org/listinfo/es-discuss >> >> _______________________________________________ >> es-discuss mailing list >> [email protected] >> https://mail.mozilla.org/listinfo/es-discuss _______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

