foop
Version:
interfaces that describe their intentions.
31 lines (28 loc) • 2.88 kB
JavaScript
/**
* The base implementation of `baseForOwn` which iterates over `object`
* properties returned by `keysFunc` and invokes `iteratee` for each property.
* Iteratee functions may exit iteration early by explicitly returning `false`.
* @since 5.0.0-beta.6
* @memberOf loop
*
* @param {Object} object The object to iterate over.
* @param {Function} iteratee The function invoked per iteration.
* @param {Function} keysFunc The function to get the keys of `object`.
* @return {Object} Returns `object`.
*
*/
function baseFor(object, iteratee, keysFunc) {
var iterable = Object(object)
var props = keysFunc(object)
var length = props.length;
var index = -1
while (length--) {
var key = props[++index]
if (iteratee(iterable[key], key, iterable) === false) {
break
}
}
return object
}
module.exports = baseFor
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZUZvci5qcyIsInNvdXJjZXMiOlsiYmFzZUZvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBiYXNlRm9yT3duYCB3aGljaCBpdGVyYXRlcyBvdmVyIGBvYmplY3RgXG4gKiBwcm9wZXJ0aWVzIHJldHVybmVkIGJ5IGBrZXlzRnVuY2AgYW5kIGludm9rZXMgYGl0ZXJhdGVlYCBmb3IgZWFjaCBwcm9wZXJ0eS5cbiAqIEl0ZXJhdGVlIGZ1bmN0aW9ucyBtYXkgZXhpdCBpdGVyYXRpb24gZWFybHkgYnkgZXhwbGljaXRseSByZXR1cm5pbmcgYGZhbHNlYC5cbiAqIEBzaW5jZSA1LjAuMC1iZXRhLjZcbiAqIEBtZW1iZXJPZiBsb29wXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBrZXlzRnVuYyBUaGUgZnVuY3Rpb24gdG8gZ2V0IHRoZSBrZXlzIG9mIGBvYmplY3RgLlxuICogQHJldHVybiB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICpcbiAqL1xuZnVuY3Rpb24gYmFzZUZvcihvYmplY3QsIGl0ZXJhdGVlLCBrZXlzRnVuYykge1xuICBjb25zdCBpdGVyYWJsZSA9IE9iamVjdChvYmplY3QpXG4gIGNvbnN0IHByb3BzID0ga2V5c0Z1bmMob2JqZWN0KVxuICBsZXQge2xlbmd0aH0gPSBwcm9wc1xuICBsZXQgaW5kZXggPSAtMVxuXG4gIHdoaWxlIChsZW5ndGgtLSkge1xuICAgIGNvbnN0IGtleSA9IHByb3BzWysraW5kZXhdXG4gICAgaWYgKGl0ZXJhdGVlKGl0ZXJhYmxlW2tleV0sIGtleSwgaXRlcmFibGUpID09PSBmYWxzZSkge1xuICAgICAgYnJlYWtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG9iamVjdFxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VGb3JcbiJdLCJuYW1lcyI6WyJjb25zdCIsImxldCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7QUFhQSxTQUFTLE9BQU8sQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRTtFQUMzQ0EsR0FBSyxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0VBQy9CQSxHQUFLLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7RUFDOUIsQUFBRyxBQUFFLElBQUEsTUFBTSxnQkFBUCxBQUFPLEFBQUMsQUFBUTtFQUNwQkMsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7O0VBRWQsT0FBTyxNQUFNLEVBQUUsRUFBRTtJQUNmRCxHQUFLLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQztJQUMxQixJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLFFBQVEsQ0FBQyxLQUFLLEtBQUssRUFBRTtNQUNwRCxLQUFLO0tBQ047R0FDRjtFQUNELE9BQU8sTUFBTTtDQUNkOztBQUVELE1BQU0sQ0FBQyxPQUFPLEdBQUcsT0FBTzsifQ==