Merge map values

Axel Rauschmayer axel at rauschma.de
Tue Apr 28 12:57:52 UTC 2015


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.giammarchi at 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 <zenparsing at gmail.com <mailto:zenparsing at 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 at mozilla.org <mailto:es-discuss at mozilla.org>
> https://mail.mozilla.org/listinfo/es-discuss <https://mail.mozilla.org/listinfo/es-discuss>
> 
> 

-- 
Dr. Axel Rauschmayer
axel at rauschma.de
rauschma.de



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20150428/15365ab9/attachment-0001.html>


More information about the es-discuss mailing list