With Maps, there are less pitfalls. For example: what if you want to use your 
version to count words and one of the words is `__proto__`? Most pitfalls can 
be fixed via `Object.create(null)`, but Maps are more straightforward for data 
(vs. code).

But your version can be easily adapted to Maps, I like the way you use 
`reduce()`. The `|` should be a `||`.

> On 28 Apr 2015, at 14:31 , Andrea Giammarchi <andrea.giammar...@gmail.com> 
> wrote:
> 
> Not sure why everyone went for the `Map` version when in JS every object is 
> basically the equivalent of a `Map` already :-)
> 
> ```js
> let m = Array.from("mainn").reduce((m,k) => ((m[k] = 1 + (m[k] | 0)), m), {});
> ```
> 
> looks a win to me, if you need to check or drop chars from the string I would 
> probably do it once before passing that to `Array.from`
> 
> Agreed with Kevin this is rather a StackOverflow like question :-)
> 
> Best Regards
> 
> 
> On Tue, Apr 28, 2015 at 1:19 PM, Kevin Smith <zenpars...@gmail.com 
> <mailto:zenpars...@gmail.com>> wrote:
> Another option:
> 
>     var map = new Map;
>     Array.from("mainn")
>       .map(c => c.toLowerCase())
>       .forEach(c => map.set(c, (map.get(c) | 0) + 1));
> 
> This kind of question is probably better left for StackOverflow, however.
> 
> 
> _______________________________________________
> es-discuss mailing list
> es-discuss@mozilla.org <mailto:es-discuss@mozilla.org>
> https://mail.mozilla.org/listinfo/es-discuss 
> <https://mail.mozilla.org/listinfo/es-discuss>
> 
> 

-- 
Dr. Axel Rauschmayer
a...@rauschma.de
rauschma.de



_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to