読者です 読者をやめる 読者になる 読者になる

underscore.jsだと再帰的にマージできないのでlodashを使う

underscore.jsの場合

underscore.jsのextendメソッドを使うとネストしたプロバティはコピーされないようだ.(今回の例だとtagプロバティ)

=>
{ title: 'ゆゆ式が壁全面でずっと流れてる部屋で仕事したい',
  body: 'ゆゆ式対応企業',
  info:
   { updated_at: Fri Sep 19 2014 14:00:14 GMT+0900 (JST),
     author: 'ありたそ' },
  yondayo: 5 }

lodashの場合

merge-recursiveのようにネストしたプロバティもコピーでき,Dateオブジェクトが消えないようにするにはlodashを使うとことで解決できた

lodash/lodash · GitHub

gist51376b42579e9a73c2a4

=>
{ title: 'ゆゆ式が壁全面でずっと流れてる部屋で仕事したい',
  body: 'ゆゆ式対応企業',
  info:
   { author: 'ありたそ',
     tag: [ 'poem', 'alitaso' ],
     updated_at: Fri Sep 19 2014 14:00:48 GMT+0900 (JST) },
  yondayo: 5 }

ちなみにlodashでmergeメソッドではなくextendメソッド使うと,underscore.jsのextendと同じ挙動になる.

結論

lodashを使うのが最良っぽい. あと`merge-recursive'でDateオブジェクトが使えなくなっている理由のほうもコードを読んで調べておきたい.

追記

Dateオブジェクトが使えなくなっている理由をコードを読んで見つけました

node-merge-recursiveとlodashのコードを読んだ結果 - Labo Memo