deepmerge
=========

Merge the enumerable attributes of two objects deeply.

example
=======

``` js
var merge = require('deepmerge')
var x = { foo : { 'bar' : 3 } }
var y = { foo : { 'baz' : 4 }, quux : 5 }
var merged = merge(x, y)
console.dir(merged)
```

output:

```
{ foo: { bar: 3, baz: 4 }, quux: 5 }
```

methods
=======

var merge = require('deepmerge')

merge(x, y)
-----------

Merge two objects `x` and `y` deeply, returning a new merged object with the
elements from both `x` and `y`.

If an element at the same key is present for both `x` and `y`, the value from
`y` will appear in the result.

The merge is immutable, so neither `x` nor `y` will be modified.

install
=======

With [npm](http://npmjs.org) do:

```
npm install deepmerge
```

test
====

With [npm](http://npmjs.org) do:

```
npm test
```

deepmerge
=========

Merge the enumerable attributes of two objects deeply.

example
=======

``` js
var util = require('util')
var merge = require('deepmerge')
var x = { foo : { 'bar' : 3 }, 'array' : [{ do: 'work', too: [1, 2, 3] }] }
var y = { foo : { 'baz' : 4 }, quux : 5, 'array' : [{ do: 'work', too: [4, 5, 6] }, { really: 'yes' }] }
var merged = merge(x, y)
console.log(util.inspect(merged, false, null))
```

output:

```
{ foo: { bar: 3, baz: 4 },
  array: [ { do: 'work', too: [ 1, 2, 3, 4, 5, 6 ] }, { really: 'yes' } ],
  quux: 5 }
```

methods
=======

var merge = require('deepmerge')

merge(x, y)
-----------

Merge two objects `x` and `y` deeply, returning a new merged object with the
elements from both `x` and `y`.

If an element at the same key is present for both `x` and `y`, the value from
`y` will appear in the result.

The merge is immutable, so neither `x` nor `y` will be modified.

The merge will also merge arrays and array values.

install
=======

With [npm](http://npmjs.org) do:

```
npm install deepmerge
```

test
====

With [npm](http://npmjs.org) do:

```
npm test
```

Add some doc to array merging, add a more complex example
Add some doc to array merging, add a more complex example
