UNPKG

929 BJavaScriptView Raw
1var baseForRight = require('./_baseForRight'),
2 castFunction = require('./_castFunction'),
3 keysIn = require('./keysIn');
4
5/**
6 * This method is like `_.forIn` except that it iterates over properties of
7 * `object` in the opposite order.
8 *
9 * @static
10 * @memberOf _
11 * @since 2.0.0
12 * @category Object
13 * @param {Object} object The object to iterate over.
14 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
15 * @returns {Object} Returns `object`.
16 * @see _.forIn
17 * @example
18 *
19 * function Foo() {
20 * this.a = 1;
21 * this.b = 2;
22 * }
23 *
24 * Foo.prototype.c = 3;
25 *
26 * _.forInRight(new Foo, function(value, key) {
27 * console.log(key);
28 * });
29 * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'.
30 */
31function forInRight(object, iteratee) {
32 return object == null
33 ? object
34 : baseForRight(object, castFunction(iteratee), keysIn);
35}
36
37module.exports = forInRight;