Mapのオブジェクト化 コードゴルフ
code: Usage.js
代入しつつ、代入「先」オブジェクトを返却するために、条件分岐して、分岐の両方に代入先オブジェクトを指定しています。
このパターンは、代入しつつその返り値を握りつぶす処理として、コードゴルフで重宝しています。
余談ですが、近い発想で[...map].map(function(k,v){this[k]=v},{})を思いつきます。こちらは僅かに短い代わりに、代入のあと結果を取り出す方法がないです。
code: sample.js
{
"ancestorOrigins": {},
"protocol": "https:",
"host": "developer.mozilla.org",
"hostname": "developer.mozilla.org",
"port": "",
"pathname": "/ja/docs/Web/API/EventSource",
"search": "",
"hash": ""
}
locationオブジェクトが復元できていますね。