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
34 lines (32 loc) • 880 B
JavaScript
import getEachDeep from './getEachDeep.js';
import getCondense from './getCondense.js';
export default 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;
}