UNPKG

deepdash

Version:

➔ 𝐃eep standalone lib / 𝐋odash extension: ✓ eachDeep ✓ filterDeep ✓ mapDeep ✓ reduceDeep ✓ pickDeep ✓ omitDeep ✓ keysDeep ✓ index ✓ condenseDeep ⋮ Parents stack ⋮ Circular check ⋮ Leaves only mode ⋮ Children mode ⋮ cherry-pick ⋮ esm

38 lines (34 loc) 928 B
'use strict'; var getCondense = require('./getCondense.js'); var getEachDeep = require('./getEachDeep.js'); function getCondenseDeep(_) { var eachDeep = getEachDeep(_); var condense = getCondense(); var _each = _.each || _.forArray; function condenseDeep(obj, options) { options = _.merge( { checkCircular: false, }, options || {} ); var eachDeepOptions = { checkCircular: options.checkCircular, ownPropertiesOnly: options.ownPropertiesOnly, }; var arrays = []; //console.log('condenseDeep → eachDeep'); eachDeep( obj, function (value, key, parent, context) { if (!context.isCircular && Array.isArray(value)) { arrays.push(value); } }, eachDeepOptions ); if (Array.isArray(obj)) { arrays.push(obj); } _each(arrays, condense); return obj; } return condenseDeep; } module.exports = getCondenseDeep;