JavaScript は ES2015 以降、言語標準の機能が強化され、Array の操作だけなら別に Underscore / lodash は必要ないかなと思い、最近はできるだけ粘って入れないようにしています。
ですが、どうしても Object と Array の変換がコンパクトに書けません。
Ruby ならこういうので一発なわけですよ。
Hash[*[['a', 'b'], ['b', 'c'], ['c', 'd']].flatten]
# => {"a"=>"b", "b"=>"c", "c"=>"d"}
で、軽く変換方法を見るとまーだいたい副作用ベースで forEach で書くわけですけど、いやそれやりたくないなぁと思って、稀によく利用する lodash を調べたらありました。
_.fromPairs - Lodash Documentation
_.fromPairs([['a', 1], ['b', 2]]);
// => { 'a': 1, 'b': 2 }
なんてこった Ruby そのままというか、flatten がない分むしろスマートです。
逆もあります。
toPairs と toPairsIn の違いは本家ドキュメントを参照してください。
lodash v4 がリリースされたのが 2016年1月なのですが、コツコツ更新されてるんですねー。1
さらに、「これだけのために lodash 入れるのやだなぁ」と思う方のために朗報。なんと、個別に npm があります。
こいつらを使えば必要な function だけを導入できるわけです。いやー至れり尽くせり。
これを書いている時点で最新の 4.17.10 が 2018-04-24 リリース。Underscore.js の方も最新リリースが 2018-06 で継続中。 ↩