1 var arrayPush = require(
'./_arrayPush'),
2 isFlattenable = require(
'./_isFlattenable');
15 function baseFlatten(array, depth, predicate, isStrict, result) {
17 length = array.length;
19 predicate || (predicate = isFlattenable);
20 result || (result = []);
22 while (++index < length) {
23 var value = array[index];
24 if (depth > 0 && predicate(value)) {
27 baseFlatten(value, depth - 1, predicate, isStrict, result);
29 arrayPush(result, value);
31 }
else if (!isStrict) {
32 result[result.length] = value;
38 module.exports = baseFlatten;