1 var isArray = require('../lang/isArray');
2 var append = require('./append');
5 * Helper function to flatten to a destination array.
6 * Used to remove the need to create intermediate arrays while flattening.
8 function flattenTo(arr, result, level) {
11 } else if (level === 0) {
22 flattenTo(value, result, level - 1);
31 * Recursively flattens an array.
32 * A new array containing all the elements is returned.
33 * If `shallow` is true, it will only flatten one level.
35 function flatten(arr, level) {
36 level = level == null? -1 : level;
37 return flattenTo(arr, [], level);
40 module.exports = flatten;