hierarchy-js
Version:
Elegant and lightweight library for working with data structures
28 lines (21 loc) • 795 B
JavaScript
var _require = require('../services/common'),
hasChildren = _require.hasChildren,
childrenKey = _require.childrenKey;
var createFlatHierarchy = function createFlatHierarchy(items, parent) {
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
var flatList = [];
items.forEach(function (item) {
if (hasChildren(item)) {
var key = childrenKey();
var children = createFlatHierarchy(item[key]);
!options.saveExtractedChildren && delete item[key];
!options.excludeParent && children.unshift(item);
flatList = flatList.concat(children);
} else {
!options.excludeParent && flatList.push(item);
}
});
return flatList;
};
module.exports = { createFlatHierarchy: createFlatHierarchy };
;