2018-07-10

lodash v4以降のpairsがArrayとObjectの変換に便利

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 だけを導入できるわけです。いやー至れり尽くせり。

  1. これを書いている時点で最新の 4.17.10 が 2018-04-24 リリース。Underscore.js の方も最新リリースが 2018-06 で継続中。 

About

例によって個人のなんちゃらです