deno.land / x / lodash@4.17.19 / npm-package / _baseFlatten.js

_baseFlatten.js
نووسراو ببینە
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
var arrayPush = require('./_arrayPush'), isFlattenable = require('./_isFlattenable');
/** * The base implementation of `_.flatten` with support for restricting flattening. * * @private * @param {Array} array The array to flatten. * @param {number} depth The maximum recursion depth. * @param {boolean} [predicate=isFlattenable] The function invoked per iteration. * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks. * @param {Array} [result=[]] The initial result value. * @returns {Array} Returns the new flattened array. */function baseFlatten(array, depth, predicate, isStrict, result) { var index = -1, length = array.length;
predicate || (predicate = isFlattenable); result || (result = []);
while (++index < length) { var value = array[index]; if (depth > 0 && predicate(value)) { if (depth > 1) { // Recursively flatten arrays (susceptible to call stack limits). baseFlatten(value, depth - 1, predicate, isStrict, result); } else { arrayPush(result, value); } } else if (!isStrict) { result[result.length] = value; } } return result;}
module.exports = baseFlatten;
lodash

Version Info

Tagged at
3 years ago

External Dependencies

No external dependencies 🎉