@@ -18,15 +18,15 @@ Lodash mixins for (deep) object accessing / manipulation.
1818
1919## Docs
2020The following mixins are included in ` lodash-deep` :
21+ - [_ .deepSet ](#_deepsetobject- propertypath- value)
22+ - [_ .deepGet ](#_deepgetobject- propertypath)
23+ - [_ .deepOwn ](#_deepownobject- propertypath)
24+ - [_ .deepPluck ](#_deeppluckcollection- propertypath)
2125- [_ .deepIn ](#_deepinobject- propertypath)
2226- [_ .deepHas ](#_deephasobject- propertypath)
23- - [_ .deepGetValue ](#_deepgetvalueobject- propertypath)
24- - [_ .deepGetOwnValue ](#_deepgetownvalueobject- propertypath)
25- - [_ .deepSetValue ](#_deepsetvalueobject- propertypath- value)
26- - [_ .deepPluck ](#_deeppluckcollection- propertypath)
2727
28- ### _ .deepIn (object, propertyPath)
29- Executes a deep check for the existence of a property in an object tree.
28+ ### _ .deepSet (object, propertyPath, value )
29+ Sets a value of a property in an object tree . Any missing objects will be created .
3030
3131#### object
3232Type: ` Object`
@@ -38,31 +38,24 @@ Type: `string`
3838
3939The dot separated propertyPath.
4040
41+ #### value
42+ Type: ` *`
43+
44+ The value to set.
45+
4146#### returns
42- Type: ` boolean `
47+ Type: ` Object `
4348
4449` ` ` javascript
45- var object = {
46- level1: {
47- level2: Object.create({
48- level3: {
49- value: 'value 3'
50- }
51- })
52- }
53- };
54- _.deepIn(object, 'level1');
55- // -> true
56- _.deepIn(object, 'level1.level2');
57- // -> true
58- _.deepIn(object, 'level1.level2.level3');
59- // -> true
60- _.deepIn(object, 'level1.level2.level3.value');
61- // -> true
50+ var object = {};
51+ _.deepSet(object, 'level1.level2.level3.value', 'value 3');
52+ // -> { level1: { level2: { level3: { value: 'value 3' }}}}
53+ _.deepSet(object, 'level1.level2.level3.value', 'foo');
54+ // -> { level1: { level2: { level3: { value: 'foo' }}}}
6255` ` `
6356
64- ### _ .deepHas (object, propertyPath)
65- Executes a deep check for the existence of a * own * property in an object tree.
57+ ### _ .deepGet (object, propertyPath)
58+ Retreives the value of a property in an object tree.
6659
6760#### object
6861Type: ` Object`
@@ -75,30 +68,31 @@ Type: `string`
7568The dot separated propertyPath.
7669
7770#### returns
78- Type: ` boolean`
71+ Type: ` *|undefined`
72+
73+ The value, or undefined if it doesn' t exists.
7974
8075``` javascript
8176var object = {
8277 level1: {
78+ value: ' value 1 ' ,
8379 level2: Object.create({
8480 level3: {
8581 value: ' value 3 '
8682 }
8783 })
8884 }
8985};
90- _.deepHas(object, 'level1');
91- // -> true
92- _.deepHas(object, 'level1.level2');
93- // -> true
94- _.deepHas(object, 'level1.level2.level3');
95- // -> false
96- _.deepHas(object, 'level1.level2.level3.value');
97- // -> false
86+ _.deepGet(object, ' level1 .value ' );
87+ // -> ' value 1 '
88+ _.deepGet(object, ' level1 .level2 .level3 .value ' );
89+ // -> ' value 3 '
90+ _.deepGet(object, ' foo .bar .baz ' );
91+ // -> undefined
9892```
9993
100- ### _ .deepGetValue (object, propertyPath)
101- Retreives the value of a property in an object tree.
94+ ### _.deepOwn (object, propertyPath)
95+ Retreives the value of a *own* property in an object tree.
10296
10397#### object
10498Type: `Object`
@@ -126,53 +120,45 @@ var object = {
126120 })
127121 }
128122};
129- _.deepGetValue (object, ' level1 .value ' );
123+ _.deepOwn (object, 'level1.value');
130124// -> 'value 1'
131- _.deepGetValue (object, ' level1 .level2 .level3 .value ' );
132- // -> ' value 3 '
133- _.deepGetValue (object, ' foo .bar .baz ' );
125+ _.deepOwn (object, 'level1.level2.level3.value');
126+ // -> undefined
127+ _.deepOwn (object, 'foo.bar.baz');
134128// -> undefined
135129` ` `
136130
137- ### _.deepGetOwnValue(object , propertyPath)
138- Retreives the value of a *own* property in an object tree .
131+ ### _ .deepPluck (collection , propertyPath)
132+ Executes a deep pluck on an collection of object trees .
139133
140- #### object
141- Type: `Object`
134+ #### collection
135+ Type: ` Object|Array `
142136
143- The root object of the object tree .
137+ The collection of object trees .
144138
145139#### propertyPath
146140Type: ` string`
147141
148142The dot separated propertyPath.
149143
150144#### returns
151- Type: `*|undefined`
152-
153- The value, or undefined if it doesn' t exists.
145+ Type: ` Array`
154146
155147` ` ` javascript
156- var object = {
157- level1: {
158- value: 'value 1',
159- level2: Object.create({
160- level3: {
161- value: 'value 3'
162- }
163- })
164- }
165- };
166- _.deepGetOwnValue(object, 'level1.value');
167- // -> 'value 1'
168- _.deepGetOwnValue(object, 'level1.level2.level3.value');
169- // -> undefined
170- _.deepGetOwnValue(object, 'foo.bar.baz');
171- // -> undefined
148+ var collection = [
149+ { level1: { level2: { level3: { value: 1 }}}},
150+ { level1: { level2: { level3: { value: 2 }}}},
151+ { level1: { level2: { level3: { value: 3 }}}},
152+ { level1: { level2: { level3: { value: 4 }}}},
153+ { level1: { level2: {} }},
154+ {}
155+ ];
156+ _.deepPluck(collection, 'level1.level2.level3.value');
157+ // -> [ 1, 2, 3, 4, undefined, undefined ]
172158` ` `
173159
174- ### _ .deepSetValue (object, propertyPath, value )
175- Sets a value of a property in an object tree . Any missing objects will be created .
160+ ### _ .deepIn (object, propertyPath)
161+ Executes a deep check for the existence of a property in an object tree.
176162
177163#### object
178164Type: ` Object`
@@ -184,47 +170,64 @@ Type: `string`
184170
185171The dot separated propertyPath.
186172
187- #### value
188- Type: ` *`
189-
190- The value to set.
191-
192173#### returns
193- Type: ` Object `
174+ Type: ` boolean `
194175
195176` ` ` javascript
196- var object = {};
197- _.deepSetValue(object, 'level1.level2.level3.value', 'value 3');
198- // -> { level1: { level2: { level3: { value: 'value 3' }}}}
199- _.deepSetValue(object, 'level1.level2.level3.value', 'foo');
200- // -> { level1: { level2: { level3: { value: 'foo' }}}}
177+ var object = {
178+ level1: {
179+ level2: Object.create({
180+ level3: {
181+ value: 'value 3'
182+ }
183+ })
184+ }
185+ };
186+ _.deepIn(object, 'level1');
187+ // -> true
188+ _.deepIn(object, 'level1.level2');
189+ // -> true
190+ _.deepIn(object, 'level1.level2.level3');
191+ // -> true
192+ _.deepIn(object, 'level1.level2.level3.value');
193+ // -> true
201194` ` `
202195
203- ### _ .deepPluck (collection , propertyPath)
204- Executes a deep pluck on an collection of object trees .
196+ ### _ .deepHas (object , propertyPath)
197+ Executes a deep check for the existence of a * own * property in an object tree .
205198
206- #### collection
207- Type: ` Object|Array `
199+ #### object
200+ Type: ` Object`
208201
209- The collection of object trees .
202+ The root object of the object tree .
210203
211204#### propertyPath
212205Type: ` string`
213206
214207The dot separated propertyPath.
215208
216209#### returns
217- Type: ` Array `
210+ Type: ` boolean `
218211
219212` ` ` javascript
220- var collection = [
221- { level1: { level2: { level3: { value: 1 }}}},
222- { level1: { level2: { level3: { value: 2 }}}},
223- { level1: { level2: { level3: { value: 3 }}}},
224- { level1: { level2: { level3: { value: 4 }}}},
225- { level1: { level2: {} }},
226- {}
227- ];
228- _.deepPluck(collection, 'level1.level2.level3.value');
229- // -> [ 1, 2, 3, 4, undefined, undefined ]
213+ var object = {
214+ level1: {
215+ level2: Object.create({
216+ level3: {
217+ value: 'value 3'
218+ }
219+ })
220+ }
221+ };
222+ _.deepHas(object, 'level1');
223+ // -> true
224+ _.deepHas(object, 'level1.level2');
225+ // -> true
226+ _.deepHas(object, 'level1.level2.level3');
227+ // -> false
228+ _.deepHas(object, 'level1.level2.level3.value');
229+ // -> false
230230` ` `
231+
232+ ### Function name change
233+ In version 1.2 .0 function names were simplified. Backward compatibility with the old names remains in place.
0 commit comments