obj.js
- Source
Methods#
(static) defineLazyProperty(obj, key, getValue, setter)#
Object.defineProperty but "lazy", which means that the value is only set after it is retrieved the first time, rather than being set right away.
Name | Type | Description |
---|---|---|
obj | Object | the object to set the property on |
key | string | the key for the property to set |
getValue | function | the function used to get the value when it is needed. |
setter | boolean | whether a setter should be allowed or not |
- Source
(static) each(object, fn)#
Array-like iteration for objects.
Name | Type | Description |
---|---|---|
object | Object | The object to iterate over |
fn | obj:EachCallback | The callback function which is called for each key in the object. |
- Source
(static) isObject(value) → {boolean}#
Returns whether a value is an object of any kind - including DOM nodes, arrays, regular expressions, etc. Not functions, though.
This avoids the gotcha where using typeof
on a null
value results in 'object'
.
Name | Type | Description |
---|---|---|
value | Object |
- Source
- Type:
- boolean
(static) isPlain(value) → {boolean}#
Returns whether an object appears to be a "plain" object - that is, a direct instance of Object
.
Name | Type | Description |
---|---|---|
value | Object |
- Source
- Type:
- boolean
(static) merge(sources) → {Object}#
Merge two objects recursively.
Performs a deep merge like lodash.merge, but only merges plain objects (not arrays, elements, or anything else).
Non-plain object values will be copied directly from the right-most argument.
Name | Type | Description |
---|---|---|
sources | Array.<Object> | One or more objects to merge into a new object. |
- Source
A new object that is the merged result of all sources.
- Type:
- Object
(static) reduce(object, fn, initialopt) → {*}#
Array-like reduce for objects.
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
object | Object | The Object that you want to reduce. | ||
fn | function | A callback function which is called for each key in the object. It receives the accumulated value and the per-iteration value and key as arguments. | ||
initial | * | <optional> | 0 | Starting value |
- Source
The final accumulated value.
- Type:
- *
(static) values(source) → {Array.<unknown>}#
Returns an array of values for a given object
Name | Type | Description |
---|---|---|
source | Object | target object |
- Source
- object values
- Type:
- Array.<unknown>
Type Definitions#
obj:EachCallback(value, key)#
Name | Type | Description |
---|---|---|
value | * | The current key for the object that is being iterated over. |
key | string | The current key-value for object that is being iterated over |
- Source
obj:ReduceCallback(accum, value, key) → {*}#
Name | Type | Description |
---|---|---|
accum | * | The value that is accumulating over the reduce loop. |
value | * | The current key for the object that is being iterated over. |
key | string | The current key-value for object that is being iterated over |
- Source
The new accumulated value.
- Type:
- *