You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.0 KiB
39 lines
1.0 KiB
var baseFor = require('./_baseFor'), |
|
castFunction = require('./_castFunction'), |
|
keysIn = require('./keysIn'); |
|
|
|
/** |
|
* Iterates over own and inherited enumerable string keyed properties of an |
|
* object and invokes `iteratee` for each property. The iteratee is invoked |
|
* with three arguments: (value, key, object). Iteratee functions may exit |
|
* iteration early by explicitly returning `false`. |
|
* |
|
* @static |
|
* @memberOf _ |
|
* @since 0.3.0 |
|
* @category Object |
|
* @param {Object} object The object to iterate over. |
|
* @param {Function} [iteratee=_.identity] The function invoked per iteration. |
|
* @returns {Object} Returns `object`. |
|
* @see _.forInRight |
|
* @example |
|
* |
|
* function Foo() { |
|
* this.a = 1; |
|
* this.b = 2; |
|
* } |
|
* |
|
* Foo.prototype.c = 3; |
|
* |
|
* _.forIn(new Foo, function(value, key) { |
|
* console.log(key); |
|
* }); |
|
* // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed). |
|
*/ |
|
function forIn(object, iteratee) { |
|
return object == null |
|
? object |
|
: baseFor(object, castFunction(iteratee), keysIn); |
|
} |
|
|
|
module.exports = forIn;
|
|
|