object-tools
v2.0.6
Published
Useful functions for working with objects
Downloads
44,778
Readme
object-tools
Useful functions for working with objects
Example
var o = require('object-tools')
- object-tools
- .extend(...object) ⇒ object
- .clone(input) ⇒ object | array
- .every(object, iterator) ⇒ boolean
- .each(object, callback)
- .exists(object, query) ⇒ boolean
- .without(object, toRemove) ⇒ object
- .where(object, query) ⇒ object
- .extract(object, query) ⇒ object
- .select(object, fields) ⇒ object
- .get(object, expression) ⇒ *
o.extend(...object) ⇒ object
Merge a list of objects, left to right, into one - to a maximum depth of 10.
Kind: static method of object-tools
| Param | Type | Description | | --- | --- | --- | | ...object | object | a sequence of object instances to be extended |
Example
> o.extend({ one: 1, three: 3 }, { one: 'one', two: 2 }, { four: 4 })
{ one: 'one',
three: 3,
two: 2,
four: 4 }
o.clone(input) ⇒ object | array
Clones an object or array
Kind: static method of object-tools
| Param | Type | Description | | --- | --- | --- | | input | object | array | the input to clone |
Example
> date = new Date()
Fri May 09 2014 13:54:34 GMT+0200 (CEST)
> o.clone(date)
{} // a Date instance doesn't own any properties
> date.clive = 'hater'
'hater'
> o.clone(date)
{ clive: 'hater' }
> array = [1,2,3]
[ 1, 2, 3 ]
> newArray = o.clone(array)
[ 1, 2, 3 ]
> array === newArray
false
o.every(object, iterator) ⇒ boolean
Returns true if the supplied iterator function returns true for every property in the object
Kind: static method of object-tools
| Param | Type | Description |
| --- | --- | --- |
| object | object | the object to inspect |
| iterator | function | the iterator function to run against each key/value pair, the args are (value, key)
. |
Example
> function aboveTen(input){ return input > 10; }
> o.every({ eggs: 12, carrots: 30, peas: 100 }, aboveTen)
true
> o.every({ eggs: 6, carrots: 30, peas: 100 }, aboveTen)
false
o.each(object, callback)
Runs the iterator function against every key/value pair in the input object
Kind: static method of object-tools
| Param | Type | Description |
| --- | --- | --- |
| object | object | the object to iterate |
| callback | function | the iterator function to run against each key/value pair, the args are (value, key)
. |
Example
> var total = 0
> function addToTotal(n){ total += n; }
> o.each({ eggs: 3, celery: 2, carrots: 1 }, addToTotal)
> total
6
o.exists(object, query) ⇒ boolean
returns true if the key/value pairs in query
also exist identically in object
.
Also supports RegExp values in query
. If the query
property begins with !
then test is negated.
Kind: static method of object-tools
| Param | Type | Description | | --- | --- | --- | | object | object | the object to examine | | query | object | the key/value pairs to look for |
Example
> o.exists({ a: 1, b: 2}, {a: 0})
false
> o.exists({ a: 1, b: 2}, {a: 1})
true
> o.exists({ a: 1, b: 2}, {'!a': 1})
false
> o.exists({ name: 'clive hater' }, { name: /clive/ })
true
> o.exists({ name: 'clive hater' }, { '!name': /ian/ })
true
> o.exists({ a: 1}, { a: function(n){ return n > 0; } })
true
> o.exists({ a: 1}, { a: function(n){ return n > 1; } })
false
o.without(object, toRemove) ⇒ object
Returns a clone of the object minus the specified properties. See also select.
Kind: static method of object-tools
| Param | Type | Description | | --- | --- | --- | | object | object | the input object | | toRemove | string | Array.<string> | a single property, or array of properties to omit |
Example
> o.without({ a: 1, b: 2, c: 3}, 'b')
{ a: 1, c: 3 }
> o.without({ a: 1, b: 2, c: 3}, ['b', 'a'])
{ c: 3 }
o.where(object, query) ⇒ object
Returns a new object containing the key/value pairs which satisfy the query
Kind: static method of object-tools
Since: 1.2.0
| Param | Type | Description |
| --- | --- | --- |
| object | object | The input object |
| query | Array.<string> | function | Either an array of property names, or a function. The function is called with (value, key)
and must return true
to be included in the output. |
Example
> object = { a: 1, b: 0, c: 2 }
{ a: 1, b: 0, c: 2 }
> o.where(object, function(value, key){
return value > 0
})
{ a: 1, c: 2 }
> o.where(object, [ 'b' ])
{ b: 0 }
> object
{ a: 1, b: 0, c: 2 }
o.extract(object, query) ⇒ object
identical to o.where(object, query)
with one exception - the found properties are removed from the input object
Kind: static method of object-tools
Since: 1.2.0
| Param | Type | Description |
| --- | --- | --- |
| object | object | The input object |
| query | Array.<string> | function | Either an array of property names, or a function. The function is called with (value, key)
and must return true
to be included in the output. |
Example
> object = { a: 1, b: 0, c: 2 }
{ a: 1, b: 0, c: 2 }
> o.where(object, function(value, key){
return value > 0
})
{ a: 1, c: 2 }
> object
{ b: 0 }
o.select(object, fields) ⇒ object
Returns a new object containing only the selected fields. See also without.
Kind: static method of object-tools
| Param | Type | Description | | --- | --- | --- | | object | object | the input object | | fields | string | array | a list of fields to return |
o.get(object, expression) ⇒ *
Returns the value at the given property.
Kind: static method of object-tools
Since: 1.4.0
| Param | Type | Description | | --- | --- | --- | | object | object | the input object | | expression | string | the property accessor expression |
© 2014-16 Lloyd Brookes <[email protected]>. Documented by jsdoc-to-markdown.