myy-common
Version:
Common That Helper.
39 lines (38 loc) • 1.78 kB
JavaScript
;
// recursive.js
Object.defineProperty(exports, "__esModule", { value: true });
exports.runDeepFirst = exports.runActionFirst = void 0;
// item in arr to Children array
var itemToForEachAble_Default = (function (itemInArr) { return itemInArr.directChildren; });
// flat first
// action(item, index, arr, parantItem),
function runActionFirst(recursiveItem, action, itemToForEachAble, parantItem) {
if (itemToForEachAble === void 0) { itemToForEachAble = itemToForEachAble_Default; }
if (recursiveItem != undefined && recursiveItem.length > 0) {
itemToForEachAble = itemToForEachAble || itemToForEachAble_Default;
recursiveItem.forEach(function (item, index) {
action(item, index, recursiveItem, parantItem);
if (itemToForEachAble) {
var innerArr = itemToForEachAble(item);
runActionFirst(innerArr, action, itemToForEachAble, item);
}
});
}
}
exports.runActionFirst = runActionFirst;
// deep first
// action(item, index, arr, parantItem),
function runDeepFirst(recursiveItem, action, itemToDirectChildren, parantItem) {
if (itemToDirectChildren === void 0) { itemToDirectChildren = itemToForEachAble_Default; }
if (recursiveItem != undefined && recursiveItem.length > 0) {
itemToDirectChildren = itemToDirectChildren || itemToForEachAble_Default;
recursiveItem.forEach(function (item, index) {
if (itemToDirectChildren) {
var innerArr = itemToDirectChildren(item);
runDeepFirst(innerArr, action, itemToDirectChildren, item);
}
action(item, index, recursiveItem, parantItem);
});
}
}
exports.runDeepFirst = runDeepFirst;