tree-flatten
Version:
Flatten nested tree objects to array
18 lines (14 loc) • 626 B
JavaScript
;
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
module.exports = function flattenTree(root, key) {
var flatten = [_extends({}, root)];
delete flatten[0][key];
if (root[key] && root[key].length > 0) {
return flatten.concat(root[key].map(function (child) {
return flattenTree(child, key);
}).reduce(function (a, b) {
return a.concat(b);
}, []));
}
return flatten;
};