object-tools

Useful functions for working with objects

Useful functions for working with objects

Example

var o = require("object-tools");

Merge a list of objects, left to right, into one - to a maximum depth of 10.

Kind: static method of object-tools

ParamTypeDescription
...objectobjecta 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 }

Clones an object or array

Kind: static method of object-tools

ParamTypeDescription
inputobject | arraythe 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

Returns true if the supplied iterator function returns true for every property in the object

Kind: static method of object-tools

ParamTypeDescription
objectobjectthe object to inspect
iteratorfunctionthe 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

Runs the iterator function against every key/value pair in the input object

Kind: static method of object-tools

ParamTypeDescription
objectobjectthe object to iterate
callbackfunctionthe 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

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

ParamTypeDescription
objectobjectthe object to examine
queryobjectthe 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}, { afunction(n){ return n > 0; } })
true
> o.exists({ a: 1}, { afunction(n){ return n > 1; } })
false

Returns a clone of the object minus the specified properties. See also select.

Kind: static method of object-tools

ParamTypeDescription
objectobjectthe input object
toRemovestring | 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 }

Returns a new object containing the key/value pairs which satisfy the query

Kind: static method of object-tools
Since: 1.2.0

ParamTypeDescription
objectobjectThe input object
queryArray.<string> | functionEither 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(valuekey){
      return value > 0;
  });
{ a: 1, c: 2 }
> o.where(object, [ "b" ]);
{ b: 0 }
> object
{ a: 1, b: 0, c: 2 }

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

ParamTypeDescription
objectobjectThe input object
queryArray.<string> | functionEither 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(valuekey){
      return value > 0;
  });
{ a: 1, c: 2 }
> object
{ b: 0 }

Returns a new object containing only the selected fields. See also without.

Kind: static method of object-tools

ParamTypeDescription
objectobjectthe input object
fieldsarraya list of fields to return

Returns the value at the given property.

Kind: static method of object-tools
Since: 1.4.0

ParamTypeDescription
objectobjectthe input object
expressionstringthe property accessor expression

© 2015 Lloyd Brookes <75pound@gmail.com>. Documented by jsdoc-to-markdown.