Path: csiph.com!eternal-september.org!feeder.eternal-september.org!mx02.eternal-september.org!.POSTED!not-for-mail From: Ben Bacarisse Newsgroups: comp.lang.javascript Subject: Re: is there a function enumerating all element in an object? Date: Thu, 29 Oct 2015 20:49:25 +0000 Organization: A noiseless patient Spider Lines: 36 Message-ID: <87ziz1flii.fsf@bsb.me.uk> References: <7cb49130-72c4-48ee-b968-60a5e7648855@googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: mx02.eternal-september.org; posting-host="017616aa25f81ec581c44d76d61ba2f3"; logging-data="10422"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/k+MexyI6IlAMrCLiFwT3sXACqPNWblKg=" Cancel-Lock: sha1:nMkzTN3FM/2YiEFDnzDylnVnliA= sha1:R2J7CQDjgZoXTLA2kfA/Gd174wM= X-BSB-Auth: 1.263035ec2cfc0dd2a898.20151029204925GMT.87ziz1flii.fsf@bsb.me.uk Xref: csiph.com comp.lang.javascript:28863 "Evertjan." writes: > Joao Rodrigues wrote on 29 Oct 2015 in > comp.lang.javascript: > >>> Object.keys(obj).map(key => callback(key, obj[key])); >> Or: >> >> Array.from(Object.keys(obj), key => callback(key, obj[key])); > > Could you please explain to us simple minded how this realy works? In ES6, the form x => expression is similar to function (x) { return expression; } There are a few differences ("this" is lexical in an arrow function and there is no "arguments" object) but neither of those matter here I don't think. [You may have multiple parameters: (a, b) => a + b and you may have an explicit block rather than a single expression: x => { console.log(`x = ${x}`); return x; } which sneaks in another ES6 feature: template strings.] -- Ben.