function findKey(object, callback, thisArg) {
      var result;

      callback = lodash.createCallback(callback, thisArg, 3);
      baseForOwn(object, function(value, key, object) {
        if (callback(value, key, object)) {
          result = key;
          return false;
        }
      });
      return result;
    }
This method is like `_.findIndex` except that it returns the key of the
first element that passes the callback check, instead of the element itself.

If a property name is provided for `callback` the created "_.pluck" style
callback will return the property value of the given element.

If an object is provided for `callback` the created "_.where" style callback
will return `true` for elements that have the properties of the given object,
else `false`.

@static
@memberOf _
@category Objects
@param {Object} object The object to search.
@param {Function|Object|string} [callback=identity] The function called per
 iteration. If a property name or object is provided it will be used to
 create a "_.pluck" or "_.where" style callback, respectively.
@param {*} [thisArg] The `this` binding of `callback`.
@returns {string|undefined} Returns the key of the found element, else `undefined`.
@example

var characters = {
  'barney': { 'age': 36 },
  'fred': { 'age': 40, 'blocked': true },
  'pebbles': { 'age': 1 }
};

_.findKey(characters, function(chr) {
  return chr.age < 40;
});
// => 'barney' (property order is not guaranteed across environments)

// using "_.where" callback shorthand
_.findKey(characters, { 'age': 1 });
// => 'pebbles'

// using "_.pluck" callback shorthand
_.findKey(characters, 'blocked');
// => 'fred'