Edwin, the original example loop explicitly checks `obj.hasOwnProperty(key)`, so properties in the prototype chain are not an issue here.
On Fri, Mar 4, 2016 at 1:04 PM, Edwin Reynoso <[email protected]> wrote: > Sorry guys but this is very wrong, for in, loops through all properties > even the ones inherited from all prototypes, while Object.keys() and > Object.entries() do not. They are indeed very different > > On Fri, Mar 4, 2016 at 1:45 PM Langdon <[email protected]> wrote: > >> Ahhh, nothing. I never think about destructuring. Thanks! >> >> On Fri, Mar 4, 2016 at 1:41 PM, Caitlin Potter <[email protected]> >> wrote: >> >>> > Object.entries does look nice, but 2 arguments is more straightforward >>> than a passing around a pair. >>> >>> What’s the problem with `for (let [key, value] of Object.entries(obj)) { >>> …. }` >>> >>> > As well (and perhaps more importantly), temporarily building an array >>> of arrays so we can forEach it, seems way less efficient than forIn >>> is/would be. >>> >>> You might be surprised — If the pair never reaches geriatric status (old >>> generation/tenured space, etc), it could be allocated and cleaned up >>> relatively quickly. >>> >>> On Mar 4, 2016, at 1:28 PM, Langdon <[email protected]> wrote: >>> >>> My gripe with Object.keys is that it requires a closure to use >>> effectively. >>> >>> Object.entries does look nice, but 2 arguments is more straightforward >>> than a passing around a pair. >>> >>> As well (and perhaps more importantly), temporarily building an array of >>> arrays so we can forEach it, seems way less efficient than forIn is/would >>> be. >>> >>> On Fri, Mar 4, 2016 at 1:20 PM, Isiah Meadows <[email protected]> >>> wrote: >>> >>>> Yeah, and those effectively nullify this, anyways. >>>> >>>> On Fri, Mar 4, 2016, 12:55 Simon Blackwell <[email protected]> >>>> wrote: >>>> >>>>> Not sure of the rationale; however, it looks like Chrome now supports >>>>> something similar natively: >>>>> >>>>> >>>>> >>>>> >>>>> https://twitter.com/malyw/status/704972953029623808?utm_source=javascriptweekly&utm_medium=email >>>>> >>>>> >>>>> >>>>> *From:* es-discuss [mailto:[email protected]] *On Behalf >>>>> Of *Langdon >>>>> *Sent:* Friday, March 4, 2016 11:22 AM >>>>> *To:* [email protected] >>>>> *Subject:* Object.prototype.forIn >>>>> >>>>> >>>>> >>>>> My apologies if this has been discussed before (I have to imagine it >>>>> has, but couldn't find anything). >>>>> >>>>> >>>>> >>>>> Why isn't there a `forIn` method on Object natively? >>>>> >>>>> >>>>> >>>>> Something that simply wraps this all-to-common code: >>>>> >>>>> >>>>> >>>>> var key; >>>>> >>>>> >>>>> >>>>> for (key in obj) { >>>>> >>>>> if (obj.hasOwnProperty(key) === true) { >>>>> >>>>> ... >>>>> >>>>> } >>>>> >>>>> } >>>>> >>>>> >>>>> >>>>> Example: https://jsfiddle.net/langdonx/d4Lph13u/ >>>>> >>>>> >>>>> >>>>> TIA, >>>>> >>>>> Langdon >>>>> _______________________________________________ >>>>> 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 >> > -- > Thanks > - Edwin > > _______________________________________________ > 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

