'use strict'; var flattenArr = []; function flatten(numbers) { // Declarative way of solving the problem numbers.forEach(function(number) { Array.isArray(number) ? flatten(number) : flattenArr.push(number); }); return flattenArr; } var unflatternArr = [1, 2, 3, [4, 5], [6, [7, 8]]]; console.log(flatten(unflatternArr)); // [1, 2, 3, 4, 5, 6, 7, 8]