Recursion is a technique well suited to certain types of tasks. In this first lesson we’ll look at solving a problem that requires the flattening of arrays without using recursion. Showing the shortcoming of a non-recursive solution first will help you to understand why it’s so valuable and why sometimes it's the only solution to many problem.
let input, config, tasks;input = ['dist'];config = { "dist": ["build", "deploy"], "build": ['js', 'css', 'vender'], "js": ['babel', 'ng-Annotate', "uglify"], "css": ["sass", "css-min"]};tasks = [];getTasks(input);function getTasks(input){ input.forEach((task)=>{ if(config[task]){ getTasks(config[task]); }else{ tasks.push(task); } })};console.log(tasks);
["babel", "ng-Annotate", "uglify", "sass", "css-min", "vender", "deploy"]